MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / BoxVariant

Method BoxVariant

Source/Engine/Scripting/ManagedCLR/MUtils.cpp:574–823  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

572}
573
574MObject* MUtils::BoxVariant(const Variant& value)
575{
576 const auto& stdTypes = *StdTypesContainer::Instance();
577 switch (value.Type.Type)
578 {
579 case VariantType::Null:
580 case VariantType::Void:
581 return nullptr;
582 case VariantType::Bool:
583 return MCore::Object::Box((void*)&value.AsBool, MCore::TypeCache::Boolean);
584 case VariantType::Int16:
585 return MCore::Object::Box((void*)&value.AsInt16, MCore::TypeCache::Int16);
586 case VariantType::Uint16:
587 return MCore::Object::Box((void*)&value.AsUint16, MCore::TypeCache::UInt16);
588 case VariantType::Int:
589 return MCore::Object::Box((void*)&value.AsInt, MCore::TypeCache::Int32);
590 case VariantType::Uint:
591 return MCore::Object::Box((void*)&value.AsUint, MCore::TypeCache::UInt32);
592 case VariantType::Int64:
593 return MCore::Object::Box((void*)&value.AsInt64, MCore::TypeCache::Int64);
594 case VariantType::Uint64:
595 return MCore::Object::Box((void*)&value.AsUint64, MCore::TypeCache::UInt64);
596 case VariantType::Float:
597 return MCore::Object::Box((void*)&value.AsFloat, MCore::TypeCache::Single);
598 case VariantType::Double:
599 return MCore::Object::Box((void*)&value.AsDouble, MCore::TypeCache::Double);
600 case VariantType::Float2:
601 return MCore::Object::Box((void*)&value.AsData, Float2::TypeInitializer.GetClass());
602 case VariantType::Float3:
603 return MCore::Object::Box((void*)&value.AsData, Float3::TypeInitializer.GetClass());
604 case VariantType::Float4:
605 return MCore::Object::Box((void*)&value.AsData, Float4::TypeInitializer.GetClass());
606 case VariantType::Double2:
607 return MCore::Object::Box((void*)&value.AsData, Double2::TypeInitializer.GetClass());
608 case VariantType::Double3:
609 return MCore::Object::Box((void*)&value.AsData, Double3::TypeInitializer.GetClass());
610 case VariantType::Double4:
611 return MCore::Object::Box((void*)&value.AsData, Double4::TypeInitializer.GetClass());
612 case VariantType::Color:
613 return MCore::Object::Box((void*)&value.AsData, stdTypes.ColorClass);
614 case VariantType::Guid:
615 return MCore::Object::Box((void*)&value.AsData, stdTypes.GuidClass);
616 case VariantType::String:
617#if USE_NETCORE
618 return (MObject*)MUtils::ToString((StringView)value);
619#else
620 return (MObject*)MUtils::ToString((StringView)value);
621#endif
622 case VariantType::Quaternion:
623 return MCore::Object::Box((void*)&value.AsData, stdTypes.QuaternionClass);
624 case VariantType::BoundingSphere:
625 return MCore::Object::Box((void*)&value.AsBoundingSphere(), stdTypes.BoundingSphereClass);
626 case VariantType::Rectangle:
627 return MCore::Object::Box((void*)&value.AsData, stdTypes.RectangleClass);
628 case VariantType::Pointer:
629 return MCore::Object::Box((void*)&value.AsPointer, MCore::TypeCache::IntPtr);
630 case VariantType::Ray:
631 return MCore::Object::Box((void*)&value.AsRay(), stdTypes.RayClass);

Callers

nothing calls this directly

Calls 15

ToArrayFunction · 0.85
FindScriptingTypeFunction · 0.85
FindClassFunction · 0.85
GetAddressFunction · 0.85
UnboxFunction · 0.85
GetTypeFunction · 0.85
BoxFunction · 0.70
InstanceClass · 0.50
ToStringFunction · 0.50
LengthFunction · 0.50
NewFunction · 0.50

Tested by

no test coverage detected