All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
variant.hpp File Reference

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...
 

Function Documentation

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.

Returns
KZ_TRUE if the variants are equal, KZ_FALSE otherwise.
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.

Parameters
variantVariant to examine.
fieldField.
Returns
Data type.
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.

Parameters
targetVariantThe variant which value is written.
targetDataType::KzuPropertyDataType to use as the target variant's data type.
sourceVariantThe variant which value is read.
out_castSet on success. The value is KZ_TRUE if the cast succeeded, otherwise KZ_FALSE.
Returns
KZS_SUCCESS on success.
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.

Parameters
propertyManagerThe property manager to use.
objectObject owning the property to read.
propertyTypeKzuPropertyType of the property to read.
fieldThe field to read from the property.
variantPreviously created variant which value is set.
out_foundSet on success. The value is KZ_TRUE if the property was found, otherwise KZ_FALSE.
Returns
KZS_SUCCESS on success, KZS_ERROR_ENUM_OUT_OF_RANGE in case of unsuitable data type or field.
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.

Parameters
variantVariant which value is read.
propertyManagerThe property manager to use.
objectObject owning the property to set.
propertyTypeKzuPropertyType of the property to set.
field::KzuPropertyField of the property to set.
out_foundSet on success. The value is KZ_TRUE if the property was written, otherwise KZ_FALSE.
Returns
KZS_SUCCESS on success, KZU_ERROR_WRONG_PROPERTY_DATA_TYPE if the field is not suitable, KZS_ERROR_ENUM_OUT_OF_RANGE if the variant data type is invalid.
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.

Parameters
variantVariant which value is filtered.
fieldThe field to filter by.
Returns
KZS_SUCCESS on success, KZU_ERROR_WRONG_PROPERTY_DATA_TYPE if the field is not suitable for filtering, KZS_ERROR_ENUM_OUT_OF_RANGE if the variant data type is invalid.