#include <kanzi/platform/platform.hpp>
#include <kanzi/platform/variant.hpp>
#include <kanzi/math/srt_value_2d.hpp>
#include <kanzi/math/srt_value_3d.hpp>
#include <user/properties/kzu_property_manager.h>
#include <user/properties/kzu_property.h>
#include <core/util/math/kzc_vector2.h>
#include <core/util/math/kzc_vector3.h>
#include <core/util/math/kzc_vector4.h>
#include <core/util/math/kzc_matrix3x3.h>
#include <core/util/math/kzc_matrix4x4.h>
#include <core/util/color/kzc_color.h>
#include <core/util/string/kzc_string.h>
#include <core/memory/kzc_memory_manager.h>
#include <system/kzs_types.h>
#include <system/debug/kzs_error.h>
#include <kanzi/property/property_type.hpp>
#include <kanzi/platform/memory.hpp>
Classes | |
struct | kanzi::VariantTransform2D |
3x3 matrix data to be stored in variant. More... | |
struct | kanzi::VariantTransform3D |
4x4 matrix data to be stored in variant. More... | |
struct | kanzi::Variant |
Union container for manipulating an object from a heterogeneous set of types in a uniform manner. More... | |
Namespaces | |
kanzi | |
Functions | |
KANZI_API bool | kanzi::operator== (const VariantTransform2D &lhs, const VariantTransform2D &rhs) |
KANZI_API bool | kanzi::operator== (const VariantTransform3D &lhs, const VariantTransform3D &rhs) |
KANZI_API kzsError | kzuVariantSetEmpty (struct kanzi::Variant *variant) |
Set a variant to be empty. More... | |
KANZI_API kzBool | kzuVariantIsEmpty (const struct kanzi::Variant *variant) |
Checks if a variant is empty. More... | |
KANZI_API kanzi::PropertyDataType | kzuVariantGetType (const struct kanzi::Variant *variant) |
Get the type of the value stored in a variant. More... | |
KANZI_API kzsError | kzuVariantSetFloat (struct kanzi::Variant *variant, float value) |
Initialize a variant with a float value. More... | |
KANZI_API kzsError | kzuVariantSetFloatWithField (struct kanzi::Variant *variant, kanzi::PropertyField field, float value) |
Set a float field of a variant. More... | |
KANZI_API float | kzuVariantGetFloat (const struct kanzi::Variant *variant) |
Get the float value stored in a variant. More... | |
KANZI_API float | kzuVariantGetFloatWithField (const struct kanzi::Variant *variant, kanzi::PropertyField field) |
Get the float value stored in a variant, also use field. More... | |
KANZI_API kzsError | kzuVariantSetInt (struct kanzi::Variant *variant, int value) |
Initialize a variant with a int value. More... | |
KANZI_API int | kzuVariantGetInt (const struct kanzi::Variant *variant) |
Get the int value stored in a variant. More... | |
KANZI_API kzsError | kzuVariantSetBool (struct kanzi::Variant *variant, kzBool value) |
Initialize a variant with a kzBool value. More... | |
KANZI_API kzBool | kzuVariantGetBool (const struct kanzi::Variant *variant) |
Get the kzBool value stored in a variant. More... | |
KANZI_API kzsError | kzuVariantSetColor (struct kanzi::Variant *variant, struct KzcColorRGBA value) |
Initialize a variant with a KzcColorRGBA value. More... | |
KANZI_API struct KzcColorRGBA | kzuVariantGetColor (const struct kanzi::Variant *variant) |
Get the KzcColorRGBA value stored in a variant. More... | |
KANZI_API kzsError | kzuVariantSetVector2 (struct kanzi::Variant *variant, struct KzcVector2 value) |
Initialize a variant with a KzcVector2 value. More... | |
KANZI_API struct KzcVector2 | kzuVariantGetVector2 (const struct kanzi::Variant *variant) |
Get the KzcVector2 value stored in a variant. More... | |
KANZI_API kzsError | kzuVariantSetVector3 (struct kanzi::Variant *variant, struct KzcVector3 value) |
Initialize a variant with a KzcVector3 value. More... | |
KANZI_API struct KzcVector3 | kzuVariantGetVector3 (const struct kanzi::Variant *variant) |
Get the KzcVector3 value stored in a variant. More... | |
KANZI_API kzsError | kzuVariantSetVector4 (struct kanzi::Variant *variant, struct KzcVector4 value) |
Initialize a variant with a KzcVector4 value. More... | |
KANZI_API struct KzcVector4 | kzuVariantGetVector4 (const struct kanzi::Variant *variant) |
Get the KzcVector4 value stored in a variant. More... | |
KANZI_API kzsError | kzuVariantSetMatrix3x3 (struct kanzi::Variant *variant, struct KzcMatrix3x3 value) |
Initialize a variant with a KzcMatrix3x3 value. More... | |
KANZI_API kzsError | kzuVariantSetMatrix3x3SRT (struct kanzi::Variant *variant, const struct KzcVector2 *scale, float rotation, const struct KzcVector2 *translation) |
Initialize a variant with KzcMatrix3x3 SRT values. More... | |
KANZI_API struct KzcMatrix3x3 | kzuVariantGetMatrix3x3 (const struct kanzi::Variant *variant) |
Get the KzcMatrix3x3 value stored in a variant. More... | |
KANZI_API void | kzuVariantGetMatrix3x3SRT (const struct kanzi::Variant *variant, struct KzcVector2 *out_scale, float *out_rotation, struct KzcVector2 *out_translation) |
Get the KzcMatrix3x3 SRT values stored in a variant. More... | |
KANZI_API kzsError | kzuVariantSetMatrix4x4 (struct kanzi::Variant *variant, struct KzcMatrix4x4 value) |
Initialize a variant with a KzcMatrix4x4 value. More... | |
KANZI_API kzsError | kzuVariantSetMatrix4x4SRT (struct kanzi::Variant *variant, const struct KzcVector3 *scale, const struct KzcVector3 *rotation, const struct KzcVector3 *translation) |
Initialize a variant with KzcMatrix4x4 SRT values. More... | |
KANZI_API struct KzcMatrix4x4 | kzuVariantGetMatrix4x4 (const struct kanzi::Variant *variant) |
Get the KzcMatrix4x4 value stored in a variant. More... | |
KANZI_API void | kzuVariantGetMatrix4x4SRT (const struct kanzi::Variant *variant, struct KzcVector3 *out_scale, struct KzcVector3 *out_rotation, struct KzcVector3 *out_translation) |
Get the KzcMatrix4x4 SRT values stored in a variant. More... | |
KANZI_API kzsError | kzuVariantSetString (struct kanzi::Variant *variant, kzString value) |
Initialize a variant with a kzString value. More... | |
KANZI_API kanzi::string | kzuVariantGetString (const struct kanzi::Variant *variant) |
Get the kzString value stored in a variant. More... | |
KANZI_API kzsError | kzuVariantSetPointer (struct kanzi::Variant *variant, void *value) |
Initialize a variant with a pointer value. More... | |
KANZI_API void * | kzuVariantGetPointer (const struct kanzi::Variant *variant) |
Get the pointer value stored in a variant. More... | |
KANZI_API kzsError | kzuVariantSetResourceID (struct kanzi::Variant *variant, kzString value) |
Initialize a variant with a resourceID value. More... | |
KANZI_API kanzi::ResourceID | kzuVariantGetResourceID (const struct kanzi::Variant *variant) |
Get the pointer value stored in a variant. More... | |
KANZI_API kzBool | kzuVariantIsEqual (const struct kanzi::Variant *variantA, const struct kanzi::Variant *variantB) |
Check if variants are equal. More... | |
KANZI_API kzsError | kzuVariantCopy (struct kanzi::Variant *targetVariant, const struct kanzi::Variant *sourceVariant) |
Copy a variant. More... | |
KANZI_API kanzi::PropertyDataType | kzuVariantResolveType (const struct kanzi::Variant *variant, kanzi::PropertyField field) |
Resolve the actual data type of a variant, including the field. More... | |
KANZI_API kzsError | kzuVariantCast (struct kanzi::Variant *targetVariant, kanzi::PropertyDataType targetDataType, const struct kanzi::Variant *sourceVariant, kzBool *out_cast) |
Cast a variant into the target variant. More... | |
KANZI_API kzsError | kzuVariantInitializeFromProperty (const struct KzuPropertyManager *propertyManager, const void *object, const struct KzuPropertyType *propertyType, kanzi::PropertyField field, struct kanzi::Variant *variant, kzBool *out_found) |
Gets an object's property from a property manager and sets the property value to the given variant. More... | |
KANZI_API kzsError | kzuVariantSetToProperty (const struct kanzi::Variant *variant, const struct KzuPropertyManager *propertyManager, const void *object, const struct KzuPropertyType *propertyType, kanzi::PropertyField field, kzBool *out_written) |
Sets an object's property from a variant. More... | |
KANZI_API kzsError | kzuVariantFilterWithField (struct kanzi::Variant *variant, kanzi::PropertyField field) |
Changes the value and the type of the variant to a sub-value and a sub-type of the variant. More... | |
KANZI_API kzsError kzuVariantSetEmpty | ( | struct kanzi::Variant * | variant | ) |
Set a variant to be empty.
Empty variants are considered invalid.
KANZI_API kzBool kzuVariantIsEmpty | ( | const struct kanzi::Variant * | variant | ) |
Checks if a variant is empty.
Empty variants are considered invalid.
KANZI_API kanzi::PropertyDataType kzuVariantGetType | ( | const struct kanzi::Variant * | variant | ) |
Get the type of the value stored in a variant.
KANZI_API kzsError kzuVariantSetFloat | ( | struct kanzi::Variant * | variant, |
float | value | ||
) |
Initialize a variant with a float value.
KANZI_API kzsError kzuVariantSetFloatWithField | ( | struct kanzi::Variant * | variant, |
kanzi::PropertyField | field, | ||
float | value | ||
) |
Set a float field of a variant.
KANZI_API float kzuVariantGetFloat | ( | const struct kanzi::Variant * | variant | ) |
Get the float value stored in a variant.
KANZI_API float kzuVariantGetFloatWithField | ( | const struct kanzi::Variant * | variant, |
kanzi::PropertyField | field | ||
) |
Get the float value stored in a variant, also use field.
KANZI_API kzsError kzuVariantSetInt | ( | struct kanzi::Variant * | variant, |
int | value | ||
) |
Initialize a variant with a int value.
KANZI_API int kzuVariantGetInt | ( | const struct kanzi::Variant * | variant | ) |
Get the int value stored in a variant.
KANZI_API kzsError kzuVariantSetBool | ( | struct kanzi::Variant * | variant, |
kzBool | value | ||
) |
Initialize a variant with a kzBool value.
KANZI_API kzBool kzuVariantGetBool | ( | const struct kanzi::Variant * | variant | ) |
Get the kzBool value stored in a variant.
KANZI_API kzsError kzuVariantSetColor | ( | struct kanzi::Variant * | variant, |
struct KzcColorRGBA | value | ||
) |
Initialize a variant with a KzcColorRGBA value.
KANZI_API struct KzcColorRGBA kzuVariantGetColor | ( | const struct kanzi::Variant * | variant | ) |
Get the KzcColorRGBA value stored in a variant.
KANZI_API kzsError kzuVariantSetVector2 | ( | struct kanzi::Variant * | variant, |
struct KzcVector2 | value | ||
) |
Initialize a variant with a KzcVector2 value.
KANZI_API struct KzcVector2 kzuVariantGetVector2 | ( | const struct kanzi::Variant * | variant | ) |
Get the KzcVector2 value stored in a variant.
KANZI_API kzsError kzuVariantSetVector3 | ( | struct kanzi::Variant * | variant, |
struct KzcVector3 | value | ||
) |
Initialize a variant with a KzcVector3 value.
KANZI_API struct KzcVector3 kzuVariantGetVector3 | ( | const struct kanzi::Variant * | variant | ) |
Get the KzcVector3 value stored in a variant.
KANZI_API kzsError kzuVariantSetVector4 | ( | struct kanzi::Variant * | variant, |
struct KzcVector4 | value | ||
) |
Initialize a variant with a KzcVector4 value.
KANZI_API struct KzcVector4 kzuVariantGetVector4 | ( | const struct kanzi::Variant * | variant | ) |
Get the KzcVector4 value stored in a variant.
KANZI_API kzsError kzuVariantSetMatrix3x3 | ( | struct kanzi::Variant * | variant, |
struct KzcMatrix3x3 | value | ||
) |
Initialize a variant with a KzcMatrix3x3 value.
KANZI_API kzsError kzuVariantSetMatrix3x3SRT | ( | struct kanzi::Variant * | variant, |
const struct KzcVector2 * | scale, | ||
float | rotation, | ||
const struct KzcVector2 * | translation | ||
) |
Initialize a variant with KzcMatrix3x3 SRT values.
KANZI_API struct KzcMatrix3x3 kzuVariantGetMatrix3x3 | ( | const struct kanzi::Variant * | variant | ) |
Get the KzcMatrix3x3 value stored in a variant.
KANZI_API void kzuVariantGetMatrix3x3SRT | ( | const struct kanzi::Variant * | variant, |
struct KzcVector2 * | out_scale, | ||
float * | out_rotation, | ||
struct KzcVector2 * | out_translation | ||
) |
Get the KzcMatrix3x3 SRT values stored in a variant.
KANZI_API kzsError kzuVariantSetMatrix4x4 | ( | struct kanzi::Variant * | variant, |
struct KzcMatrix4x4 | value | ||
) |
Initialize a variant with a KzcMatrix4x4 value.
KANZI_API kzsError kzuVariantSetMatrix4x4SRT | ( | struct kanzi::Variant * | variant, |
const struct KzcVector3 * | scale, | ||
const struct KzcVector3 * | rotation, | ||
const struct KzcVector3 * | translation | ||
) |
Initialize a variant with KzcMatrix4x4 SRT values.
KANZI_API struct KzcMatrix4x4 kzuVariantGetMatrix4x4 | ( | const struct kanzi::Variant * | variant | ) |
Get the KzcMatrix4x4 value stored in a variant.
KANZI_API void kzuVariantGetMatrix4x4SRT | ( | const struct kanzi::Variant * | variant, |
struct KzcVector3 * | out_scale, | ||
struct KzcVector3 * | out_rotation, | ||
struct KzcVector3 * | out_translation | ||
) |
Get the KzcMatrix4x4 SRT values stored in a variant.
KANZI_API kzsError kzuVariantSetString | ( | struct kanzi::Variant * | variant, |
kzString | value | ||
) |
Initialize a variant with a kzString value.
KANZI_API kanzi::string kzuVariantGetString | ( | const struct kanzi::Variant * | variant | ) |
Get the kzString value stored in a variant.
KANZI_API kzsError kzuVariantSetPointer | ( | struct kanzi::Variant * | variant, |
void * | value | ||
) |
Initialize a variant with a pointer value.
KANZI_API void* kzuVariantGetPointer | ( | const struct kanzi::Variant * | variant | ) |
Get the pointer value stored in a variant.
KANZI_API kzsError kzuVariantSetResourceID | ( | struct kanzi::Variant * | variant, |
kzString | value | ||
) |
Initialize a variant with a resourceID value.
KANZI_API kanzi::ResourceID kzuVariantGetResourceID | ( | const struct kanzi::Variant * | variant | ) |
Get the pointer value stored in a variant.
KANZI_API kzBool kzuVariantIsEqual | ( | const struct kanzi::Variant * | variantA, |
const struct kanzi::Variant * | variantB | ||
) |
Check if variants are equal.
Empty variants are not equal to each other. KZU_PROPERTY_DATA_TYPE_STRUCT and KZU_PROPERTY_DATA_TYPE_ARRAY data types are not supported.
KANZI_API kzsError kzuVariantCopy | ( | struct kanzi::Variant * | targetVariant, |
const struct kanzi::Variant * | sourceVariant | ||
) |
Copy a variant.
KANZI_API kanzi::PropertyDataType kzuVariantResolveType | ( | const struct kanzi::Variant * | variant, |
kanzi::PropertyField | field | ||
) |
Resolve the actual data type of a variant, including the field.
variant | Variant to examine. |
field | Field. |
KANZI_API kzsError kzuVariantCast | ( | struct kanzi::Variant * | targetVariant, |
kanzi::PropertyDataType | targetDataType, | ||
const struct kanzi::Variant * | sourceVariant, | ||
kzBool * | out_cast | ||
) |
Cast a variant into the target variant.
targetVariant | The variant which value is written. |
targetDataType | ::KzuPropertyDataType to use as the target variant's data type. |
sourceVariant | The variant which value is read. |
out_cast | Set on success. The value is KZ_TRUE if the cast succeeded, otherwise KZ_FALSE. |
KANZI_API kzsError kzuVariantInitializeFromProperty | ( | const struct KzuPropertyManager * | propertyManager, |
const void * | object, | ||
const struct KzuPropertyType * | propertyType, | ||
kanzi::PropertyField | field, | ||
struct kanzi::Variant * | variant, | ||
kzBool * | out_found | ||
) |
Gets an object's property from a property manager and sets the property value to the given variant.
propertyManager | The property manager to use. |
object | Object owning the property to read. |
propertyType | KzuPropertyType of the property to read. |
field | The field to read from the property. |
variant | Previously created variant which value is set. |
out_found | Set on success. The value is KZ_TRUE if the property was found, otherwise KZ_FALSE. |
KANZI_API kzsError kzuVariantSetToProperty | ( | const struct kanzi::Variant * | variant, |
const struct KzuPropertyManager * | propertyManager, | ||
const void * | object, | ||
const struct KzuPropertyType * | propertyType, | ||
kanzi::PropertyField | field, | ||
kzBool * | out_written | ||
) |
Sets an object's property from a variant.
variant | Variant which value is read. |
propertyManager | The property manager to use. |
object | Object owning the property to set. |
propertyType | KzuPropertyType of the property to set. |
field | ::KzuPropertyField of the property to set. |
out_found | Set on success. The value is KZ_TRUE if the property was written, otherwise KZ_FALSE. |
KANZI_API kzsError kzuVariantFilterWithField | ( | struct kanzi::Variant * | variant, |
kanzi::PropertyField | field | ||
) |
Changes the value and the type of the variant to a sub-value and a sub-type of the variant.
variant | Variant which value is filtered. |
field | The field to filter by. |