1#ifndef OE_SCENE_NODE_SKINNED_MESH_H
2#define OE_SCENE_NODE_SKINNED_MESH_H
11 class SkinnedMeshNode;
43 void addMesh(std::shared_ptr<oe::scene::SkinnedMesh> mesh,
Material* material =
nullptr);
48 void fillBlendshapes(
const BlendShapeCollection& blendshape_data);
53 void cleanBlendShapesData();
68 void addBone(
Node* node =
nullptr,
const glm::mat4 inverse_bind_matrix = glm::mat4(1.0));
76 virtual void update(
const double& delta,
const int8_t flags = 0)
override;
93 return _bones_matrices;
118 std::vector<std::shared_ptr<oe::scene::SkinnedMesh>> _meshes;
120 std::vector<std::vector<size_t>> _submesh_materials;
122 std::vector<skin::Bone> _bones;
123 std::vector<glm::mat4> _bones_matrices;
125 std::shared_ptr<skin::BlendShapeManager> blendshapes;
Definition skinned_mesh.h:16
Render agnostic material.
Definition material.h:26
Definition renderable.h:16
Skinned mesh node.
Definition skinned_mesh.h:26
virtual std::unique_ptr< oe::render::Node > generateRenderNode() override
void addBone(Node *node=nullptr, const glm::mat4 inverse_bind_matrix=glm::mat4(1.0))
oe::scene::SkinnedMesh getMesh() { return _mesh; }
const std::vector< skin::Bone > & getBones() const
Definition skinned_mesh.h:105
const std::vector< glm::mat4 > getBonesMatrices() const
Definition skinned_mesh.h:91
virtual void update(const double &delta, const int8_t flags=0) override
SkinnedMeshNode(std::shared_ptr< oe::scene::SkinnedMesh > mesh=nullptr)
void addMesh(std::shared_ptr< oe::scene::SkinnedMesh > mesh, Material *material=nullptr)
Render related abstractions (Shader, Framebuffer, Cubemaps, Textures)
Definition opengl.h:10
Scene related management (Render-agnostic Geometry, Manger, etc...)
Definition debug.h:19