SceneNodeSelectionList.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. /*
  3. * Copyright (c) Contributors to the Open 3D Engine Project.
  4. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  5. *
  6. * SPDX-License-Identifier: Apache-2.0 OR MIT
  7. *
  8. */
  9. #include <AzCore/JSON/document.h>
  10. #include <AzCore/std/containers/unordered_set.h>
  11. #include <AzCore/std/string/string.h>
  12. #include <SceneAPI/SceneCore/DataTypes/ManifestBase/ISceneNodeSelectionList.h>
  13. #include <SceneAPI/SceneData/SceneDataConfiguration.h>
  14. namespace AZ
  15. {
  16. class ReflectContext;
  17. namespace SceneAPI
  18. {
  19. namespace Containers
  20. {
  21. class Scene;
  22. }
  23. namespace DataTypes
  24. {
  25. class IManifestObject;
  26. }
  27. namespace SceneData
  28. {
  29. class SceneNodeSelectionList
  30. : public DataTypes::ISceneNodeSelectionList
  31. {
  32. public:
  33. AZ_RTTI(SceneNodeSelectionList, "{D0CE66CE-1BAD-42F5-86ED-3923573B3A02}", DataTypes::ISceneNodeSelectionList);
  34. ~SceneNodeSelectionList() override;
  35. SCENE_DATA_API size_t GetSelectedNodeCount() const override;
  36. SCENE_DATA_API void AddSelectedNode(const AZStd::string& name) override;
  37. SCENE_DATA_API void AddSelectedNode(AZStd::string&& name) override;
  38. SCENE_DATA_API void RemoveSelectedNode(const AZStd::string& name) override;
  39. SCENE_DATA_API void ClearSelectedNodes() override;
  40. SCENE_DATA_API bool IsSelectedNode(const AZStd::string& name) const override;
  41. SCENE_DATA_API void EnumerateSelectedNodes(const EnumerateNodesCallback& callback) const override;
  42. SCENE_DATA_API void ClearUnselectedNodes() override;
  43. SCENE_DATA_API void EnumerateUnselectedNodes(const EnumerateNodesCallback& callback) const override;
  44. SCENE_DATA_API AZStd::unique_ptr<DataTypes::ISceneNodeSelectionList> Copy() const override;
  45. SCENE_DATA_API void CopyTo(DataTypes::ISceneNodeSelectionList& other) const override;
  46. static void Reflect(AZ::ReflectContext* context);
  47. protected:
  48. AZStd::unordered_set<AZStd::string> m_selectedNodes;
  49. AZStd::unordered_set<AZStd::string> m_unselectedNodes;
  50. };
  51. inline SceneNodeSelectionList::~SceneNodeSelectionList() = default;
  52. } // SceneData
  53. } // SceneAPI
  54. } // AZ