ImportContexts.cpp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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/SceneBuilder/ImportContexts/ImportContexts.h>
  9. #include <SceneAPI/SceneCore/Events/ImportEventContext.h>
  10. namespace AZ
  11. {
  12. namespace SceneAPI
  13. {
  14. namespace SceneBuilder
  15. {
  16. ImportContext::ImportContext(Containers::Scene& scene,
  17. Containers::SceneGraph::NodeIndex currentGraphPosition,
  18. RenamedNodesMap& nodeNameMap)
  19. : m_scene(scene)
  20. , m_currentGraphPosition(currentGraphPosition)
  21. , m_nodeNameMap(nodeNameMap)
  22. , m_contextProvider(nullptr)
  23. {
  24. }
  25. ImportContext::ImportContext(Containers::Scene& scene, RenamedNodesMap& nodeNameMap)
  26. : m_scene(scene)
  27. , m_nodeNameMap(nodeNameMap)
  28. , m_contextProvider(nullptr)
  29. {
  30. m_currentGraphPosition = Containers::SceneGraph::NodeIndex();
  31. }
  32. NodeEncounteredContext::NodeEncounteredContext(Containers::Scene& scene,
  33. Containers::SceneGraph::NodeIndex currentGraphPosition,
  34. RenamedNodesMap& nodeNameMap)
  35. : ImportContext(scene, currentGraphPosition, nodeNameMap)
  36. {
  37. }
  38. NodeEncounteredContext::NodeEncounteredContext(
  39. Events::ImportEventContext& parent, Containers::SceneGraph::NodeIndex currentGraphPosition,
  40. RenamedNodesMap& nodeNameMap)
  41. : ImportContext(parent.GetScene(), currentGraphPosition, nodeNameMap)
  42. {
  43. }
  44. SceneDataPopulatedContextBase::SceneDataPopulatedContextBase(NodeEncounteredContext& parent,
  45. AZStd::shared_ptr<DataTypes::IGraphObject> graphData, const AZStd::string& dataName)
  46. : ImportContext(parent.m_scene, parent.m_currentGraphPosition, parent.m_nodeNameMap)
  47. , m_graphData(AZStd::move(graphData))
  48. , m_dataName(dataName)
  49. {
  50. }
  51. SceneDataPopulatedContextBase::SceneDataPopulatedContextBase(Containers::Scene& scene,
  52. Containers::SceneGraph::NodeIndex currentGraphPosition,
  53. RenamedNodesMap& nodeNameMap,
  54. AZStd::shared_ptr<DataTypes::IGraphObject> nodeData, const AZStd::string& dataName)
  55. : ImportContext(scene, currentGraphPosition, nodeNameMap)
  56. , m_graphData(AZStd::move(nodeData))
  57. , m_dataName(dataName)
  58. {
  59. }
  60. SceneNodeAppendedContextBase::SceneNodeAppendedContextBase(SceneDataPopulatedContextBase& parent,
  61. Containers::SceneGraph::NodeIndex newIndex)
  62. : ImportContext(parent.m_scene, newIndex, parent.m_nodeNameMap)
  63. {
  64. }
  65. SceneNodeAppendedContextBase::SceneNodeAppendedContextBase(Containers::Scene& scene,
  66. Containers::SceneGraph::NodeIndex currentGraphPosition, RenamedNodesMap& nodeNameMap)
  67. : ImportContext(scene, currentGraphPosition, nodeNameMap)
  68. {
  69. }
  70. SceneAttributeDataPopulatedContextBase::SceneAttributeDataPopulatedContextBase(SceneNodeAppendedContextBase& parent,
  71. AZStd::shared_ptr<DataTypes::IGraphObject> nodeData,
  72. const Containers::SceneGraph::NodeIndex attributeNodeIndex, const AZStd::string& dataName)
  73. : ImportContext(parent.m_scene, attributeNodeIndex, parent.m_nodeNameMap)
  74. , m_graphData(AZStd::move(nodeData))
  75. , m_dataName(dataName)
  76. {
  77. }
  78. SceneAttributeNodeAppendedContextBase::SceneAttributeNodeAppendedContextBase(SceneAttributeDataPopulatedContextBase& parent, Containers::SceneGraph::NodeIndex newIndex)
  79. : ImportContext(parent.m_scene, newIndex, parent.m_nodeNameMap)
  80. {
  81. }
  82. SceneNodeAddedAttributesContextBase::SceneNodeAddedAttributesContextBase(SceneNodeAppendedContextBase& parent)
  83. : ImportContext(parent.m_scene, parent.m_currentGraphPosition, parent.m_nodeNameMap)
  84. {
  85. }
  86. SceneNodeFinalizeContextBase::SceneNodeFinalizeContextBase(SceneNodeAddedAttributesContextBase& parent)
  87. : ImportContext(parent.m_scene, parent.m_currentGraphPosition, parent.m_nodeNameMap)
  88. {
  89. }
  90. FinalizeSceneContextBase::FinalizeSceneContextBase(Containers::Scene& scene, RenamedNodesMap& nodeNameMap)
  91. : ImportContext(scene, nodeNameMap)
  92. {
  93. }
  94. } // namespace SceneAPI
  95. } // namespace SceneBuilder
  96. } // namespace AZ