| 572 | } |
| 573 | |
| 574 | MObject* 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); |
nothing calls this directly
no test coverage detected