17 #ifndef GZ_RENDERING_MESH_HH_
18 #define GZ_RENDERING_MESH_HH_
22 #include <unordered_map>
23 #include <gz/math/Matrix4.hh>
24 #include "gz/rendering/config.hh"
33 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
37 class GZ_RENDERING_VISIBLE
Mesh :
41 public:
virtual ~
Mesh();
45 public:
virtual bool HasSkeleton()
const = 0;
53 SkeletonLocalTransforms()
const = 0;
60 public:
virtual void SetSkeletonLocalTransforms(
76 public:
virtual void SetSkeletonWeights(
84 public:
virtual void SetSkeletonAnimationEnabled(
const std::string &_name,
85 bool _enabled,
bool _loop =
true,
float _weight = 1.0) = 0;
90 public:
virtual bool SkeletonAnimationEnabled(
const std::string &_name)
95 public:
virtual void UpdateSkeletonAnimation(
96 std::chrono::steady_clock::duration _time) = 0;
100 public:
virtual unsigned int SubMeshCount()
const = 0;
110 public:
virtual bool HasSubMeshName(
const std::string &_name)
const = 0;
122 unsigned int _index)
const = 0;
126 public:
virtual void SetDescriptor(
const MeshDescriptor &_desc) = 0;
150 public:
virtual void SetMaterial(
const std::string &_name,
151 bool _unique =
true) = 0;
156 public:
virtual void SetMaterial(
MaterialPtr _material,
157 bool _unique =
true) = 0;