MeshVertexUVData.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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/Math/Vector2.h>
  10. #include <AzCore/std/containers/vector.h>
  11. #include <SceneAPI/SceneData/SceneDataConfiguration.h>
  12. #include <SceneAPI/SceneCore/DataTypes/GraphData/IMeshVertexUVData.h>
  13. namespace AZ
  14. {
  15. namespace SceneData
  16. {
  17. namespace GraphData
  18. {
  19. class MeshVertexUVData
  20. : public AZ::SceneAPI::DataTypes::IMeshVertexUVData
  21. {
  22. public:
  23. AZ_RTTI(MeshVertexUVData, "{B435C091-482C-4EB9-B1F4-FA5B480796DA}", AZ::SceneAPI::DataTypes::IMeshVertexUVData);
  24. static void Reflect(ReflectContext* context);
  25. SCENE_DATA_API ~MeshVertexUVData() override = default;
  26. SCENE_DATA_API void CloneAttributesFrom(const IGraphObject* sourceObject) override;
  27. SCENE_DATA_API const AZ::Name& GetCustomName() const override;
  28. SCENE_DATA_API void SetCustomName(const char* name);
  29. SCENE_DATA_API void SetCustomName(const AZ::Name& name);
  30. SCENE_DATA_API size_t GetCount() const override;
  31. SCENE_DATA_API const AZ::Vector2& GetUV(size_t index) const override;
  32. // Pre-allocate memory
  33. SCENE_DATA_API void ReserveContainerSpace(size_t size);
  34. SCENE_DATA_API void AppendUV(const AZ::Vector2& uv);
  35. SCENE_DATA_API void Clear();
  36. SCENE_DATA_API void GetDebugOutput(AZ::SceneAPI::Utilities::DebugOutput& output) const override;
  37. protected:
  38. AZStd::vector<AZ::Vector2> m_uvs;
  39. AZ::Name m_customName;
  40. };
  41. } // GraphData
  42. } // SceneData
  43. } // AZ