12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #pragma once
- /*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
- #include <AzCore/std/string/string.h>
- #include <SceneAPI/SceneCore/Containers/SceneGraph.h>
- #include <SceneAPI/SceneCore/Containers/SceneManifest.h>
- #include <SceneAPI/SceneCore/SceneCoreConfiguration.h>
- #include <AzCore/Math/Vector3.h>
- namespace AZ
- {
- namespace SceneAPI
- {
- namespace Containers
- {
- // Scenes are used to store the scene's graph the hierarchy and the manifest for meta data as well
- // as a history of the files used to construct both.
- class SCENE_CORE_API Scene
- {
- public:
- AZ_TYPE_INFO(Scene, "{1F2E6142-B0D8-42C6-A6E5-CD726DAA9EF0}");
- Scene() = default;
- explicit Scene(const AZStd::string& name);
- explicit Scene(AZStd::string&& name);
- void SetSource(const AZStd::string& filename, const Uuid& guid);
- void SetSource(AZStd::string&& filename, const Uuid& guid);
- const AZStd::string& GetSourceFilename() const;
- AZStd::string_view GetSourceExtension() const;
- const Uuid& GetSourceGuid() const;
- void SetWatchFolder(const AZStd::string& watchFolder);
- const AZStd::string& GetWatchFolder() const;
- void SetManifestFilename(const AZStd::string& name);
- void SetManifestFilename(AZStd::string&& name);
- const AZStd::string& GetManifestFilename() const;
- bool HasDimension() const;
- SceneGraph& GetGraph();
- const SceneGraph& GetGraph() const;
- SceneManifest& GetManifest();
- const SceneManifest& GetManifest() const;
- const AZStd::string& GetName() const;
- enum class SceneOrientation {YUp, ZUp, XUp, NegYUp, NegZUp, NegXUp};
- void SetOriginalSceneOrientation(SceneOrientation orientation);
- void SetSceneDimension(Vector3 dimension);
- void SetSceneVertices(uint32_t vertices);
- SceneOrientation GetOriginalSceneOrientation() const;
- Vector3& GetSceneDimension();
- uint32_t GetSceneVertices() const;
- static void Reflect(ReflectContext* context);
- private:
- // Disabling export warnings for private methods, clients wont have access to them
- AZ_PUSH_DISABLE_WARNING(4251, "-Wunknown-warning-option")
- AZStd::string m_name;
- AZStd::string m_manifestFilename;
- AZStd::string m_sourceFilename;
- AZStd::string m_watchFolder;
- Uuid m_sourceGuid;
- SceneGraph m_graph;
- SceneManifest m_manifest;
- SceneOrientation m_originalOrientation = SceneOrientation::YUp;
- Vector3 m_sceneDimension;
- uint32_t m_vertices;
- bool m_hasDimension{ false };
- AZ_POP_DISABLE_WARNING
- };
- } // Containers
- } // SceneAPI
- } // AZ
|