Variable that supports a fixed set of types. More...

#include <Urho3D/Core/Variant.h>

Collaboration diagram for Urho3D::Variant:
[legend]

Public Member Functions

 Variant ()=default
 Construct empty.
 
 Variant (int value)
 Construct from integer.
 
 Variant (long long value)
 Construct from 64 bit integer.
 
 Variant (unsigned value)
 Construct from unsigned integer.
 
 Variant (unsigned long long value)
 Construct from unsigned integer.
 
 Variant (const StringHash &value)
 Construct from a string hash (convert to integer).
 
 Variant (bool value)
 Construct from a bool.
 
 Variant (float value)
 Construct from a float.
 
 Variant (double value)
 Construct from a double.
 
 Variant (const Vector2 &value)
 Construct from a Vector2.
 
 Variant (const Vector3 &value)
 Construct from a Vector3.
 
 Variant (const Vector4 &value)
 Construct from a Vector4.
 
 Variant (const Quaternion &value)
 Construct from a quaternion.
 
 Variant (const Color &value)
 Construct from a color.
 
 Variant (const String &value)
 Construct from a string.
 
 Variant (const char *value)
 Construct from a C string.
 
 Variant (const PODVector< unsigned char > &value)
 Construct from a buffer.
 
 Variant (const VectorBuffer &value)
 Construct from a VectorBuffer and store as a buffer.
 
 Variant (void *value)
 Construct from a pointer.
 
 Variant (const ResourceRef &value)
 Construct from a resource reference.
 
 Variant (const ResourceRefList &value)
 Construct from a resource reference list.
 
 Variant (const VariantVector &value)
 Construct from a variant vector.
 
 Variant (const VariantMap &value)
 Construct from a variant map.
 
 Variant (const StringVector &value)
 Construct from a string vector.
 
 Variant (const Rect &value)
 Construct from a rect.
 
 Variant (const IntRect &value)
 Construct from an integer rect.
 
 Variant (const IntVector2 &value)
 Construct from an IntVector2.
 
 Variant (const IntVector3 &value)
 Construct from an IntVector3.
 
 Variant (RefCounted *value)
 Construct from a RefCounted pointer. The object will be stored internally in a WeakPtr so that its expiration can be detected safely.
 
 Variant (const Matrix3 &value)
 Construct from a Matrix3.
 
 Variant (const Matrix3x4 &value)
 Construct from a Matrix3x4.
 
 Variant (const Matrix4 &value)
 Construct from a Matrix4.
 
template<class T >
 Variant (const CustomVariantValueImpl< T > &value)
 Construct from custom value.
 
 Variant (const String &type, const String &value)
 Construct from type and value.
 
 Variant (VariantType type, const String &value)
 Construct from type and value.
 
 Variant (const char *type, const char *value)
 Construct from type and value.
 
 Variant (VariantType type, const char *value)
 Construct from type and value.
 
 Variant (const Variant &value)
 Copy-construct from another variant.
 
 ~Variant ()
 Destruct.
 
void Clear ()
 Reset to empty.
 
Variantoperator= (const Variant &rhs)
 Assign from another variant.
 
Variantoperator= (int rhs)
 Assign from an integer.
 
Variantoperator= (long long rhs)
 Assign from 64 bit integer.
 
Variantoperator= (unsigned long long rhs)
 Assign from unsigned 64 bit integer.
 
Variantoperator= (unsigned rhs)
 Assign from an unsigned integer.
 
Variantoperator= (const StringHash &rhs)
 Assign from a StringHash (convert to integer).
 
Variantoperator= (bool rhs)
 Assign from a bool.
 
Variantoperator= (float rhs)
 Assign from a float.
 
Variantoperator= (double rhs)
 Assign from a double.
 
Variantoperator= (const Vector2 &rhs)
 Assign from a Vector2.
 
Variantoperator= (const Vector3 &rhs)
 Assign from a Vector3.
 
Variantoperator= (const Vector4 &rhs)
 Assign from a Vector4.
 
Variantoperator= (const Quaternion &rhs)
 Assign from a quaternion.
 
Variantoperator= (const Color &rhs)
 Assign from a color.
 
Variantoperator= (const String &rhs)
 Assign from a string.
 
Variantoperator= (const char *rhs)
 Assign from a C string.
 
Variantoperator= (const PODVector< unsigned char > &rhs)
 Assign from a buffer.
 
Variantoperator= (const VectorBuffer &rhs)
 Assign from a VectorBuffer and store as a buffer.
 
Variantoperator= (void *rhs)
 Assign from a void pointer.
 
Variantoperator= (const ResourceRef &rhs)
 Assign from a resource reference.
 
Variantoperator= (const ResourceRefList &rhs)
 Assign from a resource reference list.
 
Variantoperator= (const VariantVector &rhs)
 Assign from a variant vector.
 
Variantoperator= (const StringVector &rhs)
 Assign from a string vector.
 
Variantoperator= (const VariantMap &rhs)
 Assign from a variant map.
 
Variantoperator= (const Rect &rhs)
 Assign from a rect.
 
Variantoperator= (const IntRect &rhs)
 Assign from an integer rect.
 
Variantoperator= (const IntVector2 &rhs)
 Assign from an IntVector2.
 
Variantoperator= (const IntVector3 &rhs)
 Assign from an IntVector3.
 
Variantoperator= (RefCounted *rhs)
 Assign from a RefCounted pointer. The object will be stored internally in a WeakPtr so that its expiration can be detected safely.
 
Variantoperator= (const Matrix3 &rhs)
 Assign from a Matrix3.
 
Variantoperator= (const Matrix3x4 &rhs)
 Assign from a Matrix3x4.
 
Variantoperator= (const Matrix4 &rhs)
 Assign from a Matrix4.
 
template<class T >
Variantoperator= (const CustomVariantValueImpl< T > &value)
 Assign from custom value.
 
bool operator== (const Variant &rhs) const
 Test for equality with another variant.
 
bool operator== (int rhs) const
 Test for equality with an integer. To return true, both the type and value must match.
 
bool operator== (unsigned rhs) const
 Test for equality with an unsigned 64 bit integer. To return true, both the type and value must match.
 
bool operator== (long long rhs) const
 Test for equality with an 64 bit integer. To return true, both the type and value must match.
 
bool operator== (unsigned long long rhs) const
 Test for equality with an unsigned integer. To return true, both the type and value must match.
 
bool operator== (bool rhs) const
 Test for equality with a bool. To return true, both the type and value must match.
 
bool operator== (float rhs) const
 Test for equality with a float. To return true, both the type and value must match.
 
bool operator== (double rhs) const
 Test for equality with a double. To return true, both the type and value must match.
 
bool operator== (const Vector2 &rhs) const
 Test for equality with a Vector2. To return true, both the type and value must match.
 
bool operator== (const Vector3 &rhs) const
 Test for equality with a Vector3. To return true, both the type and value must match.
 
bool operator== (const Vector4 &rhs) const
 Test for equality with a Vector4. To return true, both the type and value must match.
 
bool operator== (const Quaternion &rhs) const
 Test for equality with a quaternion. To return true, both the type and value must match.
 
bool operator== (const Color &rhs) const
 Test for equality with a color. To return true, both the type and value must match.
 
bool operator== (const String &rhs) const
 Test for equality with a string. To return true, both the type and value must match.
 
bool operator== (const PODVector< unsigned char > &rhs) const
 Test for equality with a buffer. To return true, both the type and value must match.
 
bool operator== (const VectorBuffer &rhs) const
 Test for equality with a VectorBuffer. To return true, both the type and value must match.
 
bool operator== (void *rhs) const
 Test for equality with a void pointer. To return true, both the type and value must match, with the exception that a RefCounted pointer is also allowed.
 
bool operator== (const ResourceRef &rhs) const
 Test for equality with a resource reference. To return true, both the type and value must match.
 
bool operator== (const ResourceRefList &rhs) const
 Test for equality with a resource reference list. To return true, both the type and value must match.
 
bool operator== (const VariantVector &rhs) const
 Test for equality with a variant vector. To return true, both the type and value must match.
 
bool operator== (const StringVector &rhs) const
 Test for equality with a string vector. To return true, both the type and value must match.
 
bool operator== (const VariantMap &rhs) const
 Test for equality with a variant map. To return true, both the type and value must match.
 
bool operator== (const Rect &rhs) const
 Test for equality with a rect. To return true, both the type and value must match.
 
bool operator== (const IntRect &rhs) const
 Test for equality with an integer rect. To return true, both the type and value must match.
 
bool operator== (const IntVector2 &rhs) const
 Test for equality with an IntVector2. To return true, both the type and value must match.
 
bool operator== (const IntVector3 &rhs) const
 Test for equality with an IntVector3. To return true, both the type and value must match.
 
bool operator== (const StringHash &rhs) const
 Test for equality with a StringHash. To return true, both the type and value must match.
 
bool operator== (RefCounted *rhs) const
 Test for equality with a RefCounted pointer. To return true, both the type and value must match, with the exception that void pointer is also allowed.
 
bool operator== (const Matrix3 &rhs) const
 Test for equality with a Matrix3. To return true, both the type and value must match.
 
bool operator== (const Matrix3x4 &rhs) const
 Test for equality with a Matrix3x4. To return true, both the type and value must match.
 
bool operator== (const Matrix4 &rhs) const
 Test for equality with a Matrix4. To return true, both the type and value must match.
 
bool operator!= (const Variant &rhs) const
 Test for inequality with another variant.
 
bool operator!= (int rhs) const
 Test for inequality with an integer.
 
bool operator!= (unsigned rhs) const
 Test for inequality with an unsigned integer.
 
bool operator!= (long long rhs) const
 Test for inequality with an 64 bit integer.
 
bool operator!= (unsigned long long rhs) const
 Test for inequality with an unsigned 64 bit integer.
 
bool operator!= (bool rhs) const
 Test for inequality with a bool.
 
bool operator!= (float rhs) const
 Test for inequality with a float.
 
bool operator!= (double rhs) const
 Test for inequality with a double.
 
bool operator!= (const Vector2 &rhs) const
 Test for inequality with a Vector2.
 
bool operator!= (const Vector3 &rhs) const
 Test for inequality with a Vector3.
 
bool operator!= (const Vector4 &rhs) const
 Test for inequality with an Vector4.
 
bool operator!= (const Quaternion &rhs) const
 Test for inequality with a Quaternion.
 
bool operator!= (const String &rhs) const
 Test for inequality with a string.
 
bool operator!= (const PODVector< unsigned char > &rhs) const
 Test for inequality with a buffer.
 
bool operator!= (const VectorBuffer &rhs) const
 Test for inequality with a VectorBuffer.
 
bool operator!= (void *rhs) const
 Test for inequality with a pointer.
 
bool operator!= (const ResourceRef &rhs) const
 Test for inequality with a resource reference.
 
bool operator!= (const ResourceRefList &rhs) const
 Test for inequality with a resource reference list.
 
bool operator!= (const VariantVector &rhs) const
 Test for inequality with a variant vector.
 
bool operator!= (const StringVector &rhs) const
 Test for inequality with a string vector.
 
bool operator!= (const VariantMap &rhs) const
 Test for inequality with a variant map.
 
bool operator!= (const Rect &rhs) const
 Test for inequality with a rect.
 
bool operator!= (const IntRect &rhs) const
 Test for inequality with an integer rect.
 
bool operator!= (const IntVector2 &rhs) const
 Test for inequality with an IntVector2.
 
bool operator!= (const IntVector3 &rhs) const
 Test for inequality with an IntVector3.
 
bool operator!= (const StringHash &rhs) const
 Test for inequality with a StringHash.
 
bool operator!= (RefCounted *rhs) const
 Test for inequality with a RefCounted pointer.
 
bool operator!= (const Matrix3 &rhs) const
 Test for inequality with a Matrix3.
 
bool operator!= (const Matrix3x4 &rhs) const
 Test for inequality with a Matrix3x4.
 
bool operator!= (const Matrix4 &rhs) const
 Test for inequality with a Matrix4.
 
void FromString (const String &type, const String &value)
 Set from typename and value strings. Pointers will be set to null, and VariantBuffer or VariantMap types are not supported.
 
void FromString (const char *type, const char *value)
 Set from typename and value strings. Pointers will be set to null, and VariantBuffer or VariantMap types are not supported.
 
void FromString (VariantType type, const String &value)
 Set from type and value string. Pointers will be set to null, and VariantBuffer or VariantMap types are not supported.
 
void FromString (VariantType type, const char *value)
 Set from type and value string. Pointers will be set to null, and VariantBuffer or VariantMap types are not supported.
 
void SetBuffer (const void *data, unsigned size)
 Set buffer type from a memory area.
 
void SetCustomVariantValue (const CustomVariantValue &value)
 Set custom value.
 
template<class T >
void SetCustom (const T &value)
 Set custom value.
 
int GetInt () const
 Return int or zero on type mismatch. Floats and doubles are converted.
 
long long GetInt64 () const
 Return 64 bit int or zero on type mismatch. Floats and doubles are converted.
 
unsigned long long GetUInt64 () const
 Return unsigned 64 bit int or zero on type mismatch. Floats and doubles are converted.
 
unsigned GetUInt () const
 Return unsigned int or zero on type mismatch. Floats and doubles are converted.
 
StringHash GetStringHash () const
 Return StringHash or zero on type mismatch.
 
bool GetBool () const
 Return bool or false on type mismatch.
 
float GetFloat () const
 Return float or zero on type mismatch. Ints and doubles are converted.
 
double GetDouble () const
 Return double or zero on type mismatch. Ints and floats are converted.
 
const Vector2GetVector2 () const
 Return Vector2 or zero on type mismatch.
 
const Vector3GetVector3 () const
 Return Vector3 or zero on type mismatch.
 
const Vector4GetVector4 () const
 Return Vector4 or zero on type mismatch.
 
const QuaternionGetQuaternion () const
 Return quaternion or identity on type mismatch.
 
const ColorGetColor () const
 Return color or default on type mismatch. Vector4 is aliased to Color if necessary.
 
const StringGetString () const
 Return string or empty on type mismatch.
 
const PODVector< unsigned char > & GetBuffer () const
 Return buffer or empty on type mismatch.
 
VectorBuffer GetVectorBuffer () const
 Return VectorBuffer containing the buffer or empty on type mismatch.
 
void * GetVoidPtr () const
 Return void pointer or null on type mismatch. RefCounted pointer will be converted.
 
const ResourceRefGetResourceRef () const
 Return a resource reference or empty on type mismatch.
 
const ResourceRefListGetResourceRefList () const
 Return a resource reference list or empty on type mismatch.
 
const VariantVectorGetVariantVector () const
 Return a variant vector or empty on type mismatch.
 
const StringVectorGetStringVector () const
 Return a string vector or empty on type mismatch.
 
const VariantMapGetVariantMap () const
 Return a variant map or empty on type mismatch.
 
const RectGetRect () const
 Return a rect or empty on type mismatch.
 
const IntRectGetIntRect () const
 Return an integer rect or empty on type mismatch.
 
const IntVector2GetIntVector2 () const
 Return an IntVector2 or empty on type mismatch.
 
const IntVector3GetIntVector3 () const
 Return an IntVector3 or empty on type mismatch.
 
RefCountedGetPtr () const
 Return a RefCounted pointer or null on type mismatch. Will return null if holding a void pointer, as it can not be safely verified that the object is a RefCounted.
 
const Matrix3GetMatrix3 () const
 Return a Matrix3 or identity on type mismatch.
 
const Matrix3x4GetMatrix3x4 () const
 Return a Matrix3x4 or identity on type mismatch.
 
const Matrix4GetMatrix4 () const
 Return a Matrix4 or identity on type mismatch.
 
CustomVariantValueGetCustomVariantValuePtr ()
 Return pointer to custom variant value.
 
const CustomVariantValueGetCustomVariantValuePtr () const
 Return const pointer to custom variant value.
 
template<class T >
GetCustom () const
 Return custom variant value or default-constructed on type mismatch.
 
template<class T >
bool IsCustomType () const
 Return true if specified custom type is stored in the variant.
 
VariantType GetType () const
 
String GetTypeName () const
 
String ToString () const
 Convert value to string. Pointers are returned as null, and VariantBuffer or VariantMap are not supported and return empty.
 
bool IsZero () const
 
bool IsEmpty () const
 
bool IsCustom () const
 Return true when the variant stores custom type.
 
template<class T >
Get () const
 Return the value, template version.
 
PODVector< unsigned char > * GetBufferPtr ()
 Return a pointer to a modifiable buffer or null on type mismatch.
 
VariantVectorGetVariantVectorPtr ()
 Return a pointer to a modifiable variant vector or null on type mismatch.
 
StringVectorGetStringVectorPtr ()
 Return a pointer to a modifiable string vector or null on type mismatch.
 
VariantMapGetVariantMapPtr ()
 Return a pointer to a modifiable variant map or null on type mismatch.
 
template<class T >
T * GetCustomPtr ()
 Return a pointer to a modifiable custom variant value or null on type mismatch.
 
template<>
int Get () const
 
template<>
unsigned Get () const
 
template<>
long long Get () const
 
template<>
unsigned long long Get () const
 
template<>
StringHash Get () const
 
template<>
bool Get () const
 
template<>
float Get () const
 
template<>
double Get () const
 
template<>
const Vector2Get () const
 
template<>
const Vector3Get () const
 
template<>
const Vector4Get () const
 
template<>
const QuaternionGet () const
 
template<>
const ColorGet () const
 
template<>
const StringGet () const
 
template<>
const RectGet () const
 
template<>
const IntRectGet () const
 
template<>
const IntVector2Get () const
 
template<>
const IntVector3Get () const
 
template<>
const PODVector< unsigned char > & Get () const
 
template<>
void * Get () const
 
template<>
RefCountedGet () const
 
template<>
const Matrix3Get () const
 
template<>
const Matrix3x4Get () const
 
template<>
const Matrix4Get () const
 
template<>
ResourceRef Get () const
 
template<>
ResourceRefList Get () const
 
template<>
VariantVector Get () const
 
template<>
StringVector Get () const
 
template<>
VariantMap Get () const
 
template<>
Vector2 Get () const
 
template<>
Vector3 Get () const
 
template<>
Vector4 Get () const
 
template<>
Quaternion Get () const
 
template<>
Color Get () const
 
template<>
String Get () const
 
template<>
Rect Get () const
 
template<>
IntRect Get () const
 
template<>
IntVector2 Get () const
 
template<>
IntVector3 Get () const
 
template<>
PODVector< unsigned char > Get () const
 
template<>
Matrix3 Get () const
 
template<>
Matrix3x4 Get () const
 
template<>
Matrix4 Get () const
 
template<>
URHO3D_API int Get () const
 
template<>
URHO3D_API unsigned Get () const
 
template<>
URHO3D_API long long Get () const
 
template<>
URHO3D_API unsigned long long Get () const
 
template<>
URHO3D_API StringHash Get () const
 
template<>
URHO3D_API bool Get () const
 
template<>
URHO3D_API float Get () const
 
template<>
URHO3D_API double Get () const
 
template<>
const URHO3D_API Vector2Get () const
 
template<>
const URHO3D_API Vector3Get () const
 
template<>
const URHO3D_API Vector4Get () const
 
template<>
const URHO3D_API QuaternionGet () const
 
template<>
const URHO3D_API ColorGet () const
 
template<>
const URHO3D_API StringGet () const
 
template<>
const URHO3D_API RectGet () const
 
template<>
const URHO3D_API IntRectGet () const
 
template<>
const URHO3D_API IntVector2Get () const
 
template<>
const URHO3D_API IntVector3Get () const
 
template<>
const URHO3D_API PODVector< unsigned char > & Get () const
 
template<>
URHO3D_API void * Get () const
 
template<>
URHO3D_API RefCountedGet () const
 
template<>
const URHO3D_API Matrix3Get () const
 
template<>
const URHO3D_API Matrix3x4Get () const
 
template<>
const URHO3D_API Matrix4Get () const
 
template<>
URHO3D_API ResourceRef Get () const
 
template<>
URHO3D_API ResourceRefList Get () const
 
template<>
URHO3D_API VariantVector Get () const
 
template<>
URHO3D_API StringVector Get () const
 
template<>
URHO3D_API VariantMap Get () const
 
template<>
URHO3D_API Vector2 Get () const
 
template<>
URHO3D_API Vector3 Get () const
 
template<>
URHO3D_API Vector4 Get () const
 
template<>
URHO3D_API Quaternion Get () const
 
template<>
URHO3D_API Color Get () const
 
template<>
URHO3D_API String Get () const
 
template<>
URHO3D_API Rect Get () const
 
template<>
URHO3D_API IntRect Get () const
 
template<>
URHO3D_API IntVector2 Get () const
 
template<>
URHO3D_API IntVector3 Get () const
 
template<>
URHO3D_API PODVector< unsigned char > Get () const
 
template<>
URHO3D_API Matrix3 Get () const
 
template<>
URHO3D_API Matrix3x4 Get () const
 
template<>
URHO3D_API Matrix4 Get () const
 
template<>
const VariantValueGet () const
 

Static Public Member Functions

static String GetTypeName (VariantType type)
 Return name for variant type.
 
static VariantType GetTypeFromName (const String &typeName)
 Return variant type from type name.
 
static VariantType GetTypeFromName (const char *typeName)
 Return variant type from type name.
 

Static Public Attributes

static const Variant EMPTY { }
 Empty variant.
 
static const PODVector< unsigned char > emptyBuffer { }
 Empty buffer.
 
static const ResourceRef emptyResourceRef { }
 Empty resource reference.
 
static const ResourceRefList emptyResourceRefList { }
 Empty resource reference list.
 
static const VariantMap emptyVariantMap
 Empty variant map.
 
static const VariantVector emptyVariantVector { }
 Empty variant vector.
 
static const StringVector emptyStringVector { }
 Empty string vector.
 

Private Member Functions

void SetType (VariantType newType)
 Set new type and allocate/deallocate memory as necessary.
 

Private Attributes

VariantType type_ = VAR_NONE
 Variant type.
 
VariantValue value_
 Variant value.
 

Detailed Description

Variable that supports a fixed set of types.

Member Function Documentation

◆ GetType()

VariantType Urho3D::Variant::GetType ( ) const
inline

Return value's type.

Here is the caller graph for this function:

◆ GetTypeName()

String Urho3D::Variant::GetTypeName ( ) const

Return value's type name.

Here is the caller graph for this function:

◆ IsEmpty()

bool Urho3D::Variant::IsEmpty ( ) const
inline

Return true when the variant is empty (i.e. not initialized yet).

Here is the caller graph for this function:

◆ IsZero()

bool Urho3D::Variant::IsZero ( ) const

Return true when the variant value is considered zero according to its actual type.


The documentation for this class was generated from the following files:
  • Source/Urho3D/Core/Variant.h
  • Source/Urho3D/Core/Variant.cpp
  • Source/Urho3D/LuaScript/ToluaUtils.cpp