AnimationGroup.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. #pragma once
  9. #include <AzCore/Memory/Memory.h>
  10. #include <SceneAPI/SceneCore/Containers/RuleContainer.h>
  11. #include <SceneAPI/SceneCore/DataTypes/Groups/IAnimationGroup.h>
  12. namespace AZ
  13. {
  14. class ReflectContext;
  15. namespace SceneAPI
  16. {
  17. namespace SceneData
  18. {
  19. class AnimationGroup
  20. : public DataTypes::IAnimationGroup
  21. {
  22. public:
  23. AZ_RTTI(AnimationGroup, "{982E0030-8131-43E9-BA8C-23775A3B7219}", DataTypes::IAnimationGroup);
  24. AZ_CLASS_ALLOCATOR_DECL
  25. AnimationGroup();
  26. ~AnimationGroup() override = default;
  27. const AZStd::string& GetName() const override;
  28. void SetName(const AZStd::string& name);
  29. void SetName(AZStd::string&& name);
  30. const Uuid& GetId() const override;
  31. void OverrideId(const Uuid& id);
  32. Containers::RuleContainer& GetRuleContainer() override;
  33. const Containers::RuleContainer& GetRuleContainerConst() const override;
  34. const AZStd::string& GetSelectedRootBone() const override;
  35. uint32_t GetStartFrame() const override;
  36. uint32_t GetEndFrame() const override;
  37. const float GetDefaultCompressionStrength() const override;
  38. const DataTypes::IAnimationGroup::PerBoneCompressionList& GetPerBoneCompression() const override;
  39. void SetSelectedRootBone(const AZStd::string& selectedRootBone) override;
  40. void SetStartFrame(uint32_t frame) override;
  41. void SetEndFrame(uint32_t frame) override;
  42. static void Reflect(ReflectContext* context);
  43. static bool VersionConverter(SerializeContext& context, SerializeContext::DataElementNode& classElement);
  44. protected:
  45. DataTypes::IAnimationGroup::PerBoneCompressionList m_perBoneCompression;
  46. Containers::RuleContainer m_rules;
  47. AZStd::string m_selectedRootBone;
  48. AZStd::string m_name;
  49. Uuid m_id;
  50. uint32_t m_startFrame;
  51. uint32_t m_endFrame;
  52. float m_defaultCompressionStrength;
  53. };
  54. }
  55. }
  56. }