Add missing casting from Double to Float vectors within Variant
This commit is contained in:
@@ -3886,6 +3886,114 @@ Variant Variant::Cast(const Variant& v, const VariantType& to)
|
|||||||
default: ;
|
default: ;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case VariantType::Double2:
|
||||||
|
switch (to.Type)
|
||||||
|
{
|
||||||
|
case VariantType::Bool:
|
||||||
|
return Variant(Math::Abs(((Double2*)v.AsData)->X) > ZeroTolerance);
|
||||||
|
case VariantType::Int16:
|
||||||
|
return Variant((int16)((Double2*)v.AsData)->X);
|
||||||
|
case VariantType::Int:
|
||||||
|
return Variant((int32)((Double2*)v.AsData)->X);
|
||||||
|
case VariantType::Uint16:
|
||||||
|
return Variant((uint16)((Double2*)v.AsData)->X);
|
||||||
|
case VariantType::Uint:
|
||||||
|
return Variant((uint32)((Double2*)v.AsData)->X);
|
||||||
|
case VariantType::Int64:
|
||||||
|
return Variant((int64)((Double2*)v.AsData)->X);
|
||||||
|
case VariantType::Uint64:
|
||||||
|
return Variant((uint64)((Double2*)v.AsData)->X);
|
||||||
|
case VariantType::Float:
|
||||||
|
return Variant((float)((Double2*)v.AsData)->X);
|
||||||
|
case VariantType::Double:
|
||||||
|
return Variant((double)((Double2*)v.AsData)->X);
|
||||||
|
case VariantType::Float2:
|
||||||
|
return Variant(Float2(*(Double2*)v.AsData));
|
||||||
|
case VariantType::Float3:
|
||||||
|
return Variant(Float3(*(Double2*)v.AsData, 0.0f));
|
||||||
|
case VariantType::Float4:
|
||||||
|
return Variant(Float4(*(Double2*)v.AsData, 0.0f, 0.0f));
|
||||||
|
case VariantType::Color:
|
||||||
|
return Variant(Color(((Double2*)v.AsData)->X, ((Double2*)v.AsData)->Y, 0.0f, 0.0f));
|
||||||
|
case VariantType::Double3:
|
||||||
|
return Variant(Double3(*(Double2*)v.AsData, 0.0));
|
||||||
|
case VariantType::Double4:
|
||||||
|
return Variant(Double4(*(Double2*)v.AsData, 0.0, 0.0));
|
||||||
|
default: ;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case VariantType::Double3:
|
||||||
|
switch (to.Type)
|
||||||
|
{
|
||||||
|
case VariantType::Bool:
|
||||||
|
return Variant(Math::Abs(((Double3*)v.AsData)->X) > ZeroTolerance);
|
||||||
|
case VariantType::Int16:
|
||||||
|
return Variant((int16)((Double3*)v.AsData)->X);
|
||||||
|
case VariantType::Int:
|
||||||
|
return Variant((int32)((Double3*)v.AsData)->X);
|
||||||
|
case VariantType::Uint16:
|
||||||
|
return Variant((uint16)((Double3*)v.AsData)->X);
|
||||||
|
case VariantType::Uint:
|
||||||
|
return Variant((uint32)((Double3*)v.AsData)->X);
|
||||||
|
case VariantType::Int64:
|
||||||
|
return Variant((int64)((Double3*)v.AsData)->X);
|
||||||
|
case VariantType::Uint64:
|
||||||
|
return Variant((uint64)((Double3*)v.AsData)->X);
|
||||||
|
case VariantType::Float:
|
||||||
|
return Variant((float)((Double3*)v.AsData)->X);
|
||||||
|
case VariantType::Double:
|
||||||
|
return Variant((double)((Double3*)v.AsData)->X);
|
||||||
|
case VariantType::Float2:
|
||||||
|
return Variant(Float2(*(Double3*)v.AsData));
|
||||||
|
case VariantType::Float3:
|
||||||
|
return Variant(Float3(*(Double3*)v.AsData));
|
||||||
|
case VariantType::Float4:
|
||||||
|
return Variant(Float4(*(Double3*)v.AsData, 0.0f));
|
||||||
|
case VariantType::Color:
|
||||||
|
return Variant(Color(((Double3*)v.AsData)->X, ((Double3*)v.AsData)->Y, ((Double3*)v.AsData)->Z, 0.0f));
|
||||||
|
case VariantType::Double2:
|
||||||
|
return Variant(Double2(*(Double3*)v.AsData));
|
||||||
|
case VariantType::Double4:
|
||||||
|
return Variant(Double4(*(Double3*)v.AsData, 0.0));
|
||||||
|
default: ;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case VariantType::Double4:
|
||||||
|
switch (to.Type)
|
||||||
|
{
|
||||||
|
case VariantType::Bool:
|
||||||
|
return Variant(Math::Abs(((Double4*)v.AsData)->X) > ZeroTolerance);
|
||||||
|
case VariantType::Int16:
|
||||||
|
return Variant((int16)((Double4*)v.AsData)->X);
|
||||||
|
case VariantType::Int:
|
||||||
|
return Variant((int32)((Double4*)v.AsData)->X);
|
||||||
|
case VariantType::Uint16:
|
||||||
|
return Variant((uint16)((Double4*)v.AsData)->X);
|
||||||
|
case VariantType::Uint:
|
||||||
|
return Variant((uint32)((Double4*)v.AsData)->X);
|
||||||
|
case VariantType::Int64:
|
||||||
|
return Variant((int64)((Double4*)v.AsData)->X);
|
||||||
|
case VariantType::Uint64:
|
||||||
|
return Variant((uint64)((Double4*)v.AsData)->X);
|
||||||
|
case VariantType::Float:
|
||||||
|
return Variant((float)((Double4*)v.AsData)->X);
|
||||||
|
case VariantType::Double:
|
||||||
|
return Variant((double)((Double4*)v.AsData)->X);
|
||||||
|
case VariantType::Float2:
|
||||||
|
return Variant(Float2(*(Double4*)v.AsData));
|
||||||
|
case VariantType::Float3:
|
||||||
|
return Variant(Float3(*(Double4*)v.AsData));
|
||||||
|
case VariantType::Float4:
|
||||||
|
return Variant(Float4(*(Double4*)v.AsData));
|
||||||
|
case VariantType::Color:
|
||||||
|
return Variant(*(Double4*)v.AsData);
|
||||||
|
case VariantType::Double2:
|
||||||
|
return Variant(Double2(*(Double4*)v.AsData));
|
||||||
|
case VariantType::Double3:
|
||||||
|
return Variant(Double3(*(Double4*)v.AsData));
|
||||||
|
default: ;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case VariantType::Color:
|
case VariantType::Color:
|
||||||
switch (to.Type)
|
switch (to.Type)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user