Add Variant operator support for IntX.
This commit is contained in:
@@ -1525,6 +1525,132 @@ Variant::operator Vector4() const
|
||||
}
|
||||
}
|
||||
|
||||
Variant::operator Int2() const
|
||||
{
|
||||
switch (Type.Type)
|
||||
{
|
||||
case VariantType::Bool:
|
||||
return Int2((int32)(AsBool ? 1.0f : 0.0f));
|
||||
case VariantType::Int:
|
||||
return Int2((int32)AsInt);
|
||||
case VariantType::Uint:
|
||||
return Int2((int32)AsUint);
|
||||
case VariantType::Int64:
|
||||
return Int2((int32)AsInt64);
|
||||
case VariantType::Uint64:
|
||||
case VariantType::Enum:
|
||||
return Int2((int32)AsUint64);
|
||||
case VariantType::Float:
|
||||
return Int2((int32)AsFloat);
|
||||
case VariantType::Double:
|
||||
return Int2((int32)AsDouble);
|
||||
case VariantType::Pointer:
|
||||
return Int2((int32)(intptr)AsPointer);
|
||||
case VariantType::Vector2:
|
||||
return Int2(*(Vector2*)AsData);
|
||||
case VariantType::Vector3:
|
||||
return Int2(*(Vector3*)AsData);
|
||||
case VariantType::Vector4:
|
||||
return Int2(*(Vector4*)AsData);
|
||||
case VariantType::Int2:
|
||||
return Int2(*(Int2*)AsData);
|
||||
case VariantType::Int3:
|
||||
return Int2(*(Int3*)AsData);
|
||||
case VariantType::Int4:
|
||||
case VariantType::Color:
|
||||
return Int2(*(Int4*)AsData);
|
||||
case VariantType::Structure:
|
||||
if (StringUtils::Compare(Type.TypeName, Int2::TypeInitializer.GetType().Fullname.Get()) == 0)
|
||||
return *(Int2*)AsBlob.Data;
|
||||
default:
|
||||
return Int3::Zero;
|
||||
}
|
||||
}
|
||||
|
||||
Variant::operator Int3() const
|
||||
{
|
||||
switch (Type.Type)
|
||||
{
|
||||
case VariantType::Bool:
|
||||
return Int3((int32)(AsBool ? 1.0f : 0.0f));
|
||||
case VariantType::Int:
|
||||
return Int3((int32)AsInt);
|
||||
case VariantType::Uint:
|
||||
return Int3((int32)AsUint);
|
||||
case VariantType::Int64:
|
||||
return Int3((int32)AsInt64);
|
||||
case VariantType::Uint64:
|
||||
case VariantType::Enum:
|
||||
return Int3((int32)AsUint64);
|
||||
case VariantType::Float:
|
||||
return Int3((int32)AsFloat);
|
||||
case VariantType::Double:
|
||||
return Int3((int32)AsDouble);
|
||||
case VariantType::Pointer:
|
||||
return Int3((int32)(intptr)AsPointer);
|
||||
case VariantType::Vector2:
|
||||
return Int3(*(Vector2*)AsData, 0.0f);
|
||||
case VariantType::Vector3:
|
||||
return Int3(*(Vector3*)AsData);
|
||||
case VariantType::Vector4:
|
||||
return Int3(*(Vector4*)AsData);
|
||||
case VariantType::Int2:
|
||||
return Int3(*(Int2*)AsData, 0.0f);
|
||||
case VariantType::Int3:
|
||||
return Int3(*(Int3*)AsData);
|
||||
case VariantType::Int4:
|
||||
case VariantType::Color:
|
||||
return Int3(*(Int4*)AsData);
|
||||
case VariantType::Structure:
|
||||
if (StringUtils::Compare(Type.TypeName, Int3::TypeInitializer.GetType().Fullname.Get()) == 0)
|
||||
return *(Int3*)AsBlob.Data;
|
||||
default:
|
||||
return Int3::Zero;
|
||||
}
|
||||
}
|
||||
|
||||
Variant::operator Int4() const
|
||||
{
|
||||
switch (Type.Type)
|
||||
{
|
||||
case VariantType::Bool:
|
||||
return Int4((int32)(AsBool ? 1.0f : 0.0f));
|
||||
case VariantType::Int:
|
||||
return Int4((int32)AsInt);
|
||||
case VariantType::Uint:
|
||||
return Int4((int32)AsUint);
|
||||
case VariantType::Int64:
|
||||
return Int4((int32)AsInt64);
|
||||
case VariantType::Uint64:
|
||||
case VariantType::Enum:
|
||||
return Int4((int32)AsUint64);
|
||||
case VariantType::Float:
|
||||
return Int4((int32)AsFloat);
|
||||
case VariantType::Double:
|
||||
return Int4((int32)AsDouble);
|
||||
case VariantType::Pointer:
|
||||
return Int4((int32)(intptr)AsPointer);
|
||||
case VariantType::Vector2:
|
||||
return Int4(*(Vector2*)AsData, 0.0f, 0.0f);
|
||||
case VariantType::Vector3:
|
||||
return Int4(*(Vector3*)AsData, 0.0f);
|
||||
case VariantType::Vector4:
|
||||
return Int4(*(Vector4*)AsData);
|
||||
case VariantType::Int2:
|
||||
return Int4(*(Int2*)AsData, 0.0f, 0.0f);
|
||||
case VariantType::Int3:
|
||||
return Int4(*(Int3*)AsData, 0.0f);
|
||||
case VariantType::Int4:
|
||||
case VariantType::Color:
|
||||
return *(Int4*)AsData;
|
||||
case VariantType::Structure:
|
||||
if (StringUtils::Compare(Type.TypeName, Int4::TypeInitializer.GetType().Fullname.Get()) == 0)
|
||||
return *(Int4*)AsBlob.Data;
|
||||
default:
|
||||
return Int4::Zero;
|
||||
}
|
||||
}
|
||||
|
||||
Variant::operator Color() const
|
||||
{
|
||||
switch (Type.Type)
|
||||
|
||||
@@ -269,6 +269,9 @@ public:
|
||||
explicit operator Vector2() const;
|
||||
explicit operator Vector3() const;
|
||||
explicit operator Vector4() const;
|
||||
explicit operator Int2() const;
|
||||
explicit operator Int3() const;
|
||||
explicit operator Int4() const;
|
||||
explicit operator Color() const;
|
||||
explicit operator Quaternion() const;
|
||||
explicit operator Guid() const;
|
||||
|
||||
Reference in New Issue
Block a user