Gems/Umbra/Code/Source/UmbraSceneAsset/UmbraSceneDescriptor.cpp (47 lines of code) (raw):

/* * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or * its licensors. */ #include <AzCore/RTTI/BehaviorContext.h> #include <AzCore/RTTI/ReflectContext.h> #include <AzCore/Serialization/EditContext.h> #include <AzCore/Serialization/SerializeContext.h> #include <UmbraSceneAsset/UmbraSceneDescriptor.h> namespace Umbra { const char* UmbraSceneDescriptor::Extension = "umbrascenedesc"; void UmbraSceneDescriptor::Reflect(AZ::ReflectContext* context) { if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context)) { serializeContext->RegisterGenericType<AZStd::unordered_map<uint32_t, UmbraSceneSettings>>(); serializeContext->RegisterGenericType<AZStd::vector<UmbraObjectDescriptor>>(); serializeContext->Class<UmbraSceneDescriptor>() ->Version(0) ->Field("sceneSettings", &UmbraSceneDescriptor::m_sceneSettings) ->Field("sceneSettingsByView", &UmbraSceneDescriptor::m_sceneSettingsByView) ->Field("objectDescriptors", &UmbraSceneDescriptor::m_objectDescriptors) ; if (auto editContext = serializeContext->GetEditContext()) { editContext->Class<UmbraSceneDescriptor>("UmbraSceneDescriptor", "") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::Show) ->DataElement(AZ::Edit::UIHandlers::Default, &UmbraSceneDescriptor::m_sceneSettings, "Scene Settings", "") ->DataElement(AZ::Edit::UIHandlers::Default, &UmbraSceneDescriptor::m_sceneSettingsByView, "Scene Settings By View", "") ->DataElement(AZ::Edit::UIHandlers::Default, &UmbraSceneDescriptor::m_objectDescriptors, "Object Descriptors", "") ; } } if (auto behaviorContext = azrtti_cast<AZ::BehaviorContext*>(context)) { behaviorContext->Class<UmbraSceneDescriptor>("UmbraSceneDescriptor") ->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common) ->Attribute(AZ::Script::Attributes::Category, "Umbra") ->Attribute(AZ::Script::Attributes::Module, "umbra") ->Constructor() ->Constructor<const UmbraSceneDescriptor&>() ->Property("sceneSettings", BehaviorValueProperty(&UmbraSceneDescriptor::m_sceneSettings)) ->Property("sceneSettingsByView", BehaviorValueProperty(&UmbraSceneDescriptor::m_sceneSettingsByView)) ->Property("objectDescriptors", BehaviorValueProperty(&UmbraSceneDescriptor::m_objectDescriptors)) ; } } } // namespace Umbra