ImportGroup.cpp 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <SceneAPI/SceneData/Groups/ImportGroup.h>
  9. #include <AzCore/Serialization/SerializeContext.h>
  10. #include <AzCore/Serialization/EditContext.h>
  11. #include <AzCore/RTTI/BehaviorContext.h>
  12. namespace AZ::SceneAPI::SceneData
  13. {
  14. ImportGroup::ImportGroup()
  15. : m_name("Import Settings")
  16. , m_id(Uuid::CreateRandom())
  17. {
  18. }
  19. const AZStd::string& ImportGroup::GetName() const
  20. {
  21. return m_name;
  22. }
  23. const Uuid& ImportGroup::GetId() const
  24. {
  25. return m_id;
  26. }
  27. Containers::RuleContainer& ImportGroup::GetRuleContainer()
  28. {
  29. return m_rules;
  30. }
  31. const Containers::RuleContainer& ImportGroup::GetRuleContainerConst() const
  32. {
  33. return m_rules;
  34. }
  35. DataTypes::ISceneNodeSelectionList& ImportGroup::GetSceneNodeSelectionList()
  36. {
  37. return m_nodeSelectionList;
  38. }
  39. const DataTypes::ISceneNodeSelectionList& ImportGroup::GetSceneNodeSelectionList() const
  40. {
  41. return m_nodeSelectionList;
  42. }
  43. const SceneImportSettings& ImportGroup::GetImportSettings() const
  44. {
  45. return m_importSettings;
  46. }
  47. void ImportGroup::SetImportSettings(const SceneImportSettings& importSettings)
  48. {
  49. m_importSettings = importSettings;
  50. }
  51. void ImportGroup::Reflect(ReflectContext* context)
  52. {
  53. if (SerializeContext* serializeContext = azrtti_cast<SerializeContext*>(context); serializeContext)
  54. {
  55. serializeContext->Class<ImportGroup, DataTypes::IImportGroup>()
  56. ->Version(0)
  57. ->Field("ImportSettings", &ImportGroup::m_importSettings)
  58. ;
  59. if (AZ::EditContext* editContext = serializeContext->GetEditContext(); editContext)
  60. {
  61. editContext->Class<ImportGroup>("Import Settings",
  62. "The import group controls the Asset Importer settings. "
  63. "These settings affect how the source data is processed before being handled by the scene exporters.")
  64. ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
  65. ->Attribute("AutoExpand", true)
  66. ->Attribute(AZ::Edit::Attributes::NameLabelOverride, "")
  67. ->Attribute(AZ::Edit::Attributes::Max, 1)
  68. ->Attribute(AZ::Edit::Attributes::CategoryStyle, "display divider")
  69. ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://www.o3de.org/docs/user-guide/assets/scene-settings/")
  70. ->DataElement(AZ::Edit::UIHandlers::Default, &ImportGroup::m_importSettings,
  71. "Import Settings",
  72. "Settings that affect how the scene data is transformed when it is read in.")
  73. ;
  74. }
  75. }
  76. }
  77. }