8#ifndef GRAPHICS_GMORPHINGMESH_H_
9#define GRAPHICS_GMORPHINGMESH_H_
11#define GLM_FORCE_DEFAULT_ALIGNED_GENTYPES
13#include <glm/gtc/matrix_transform.hpp>
14#include <assimp/Importer.hpp>
15#include <assimp/scene.h>
16#include <assimp/postprocess.h>
17#include <assimp/cimport.h>
167 std::vector<std::vector<glm::vec3>> targetpositions, targetnormals;
169 std::shared_ptr<std::vector<gVertex>> basevertices;
171 std::vector<std::vector<std::vector<glm::vec3>>> framepositions, framenormals;
173 std::vector<std::vector<std::unique_ptr<gVbo>>> vboframes;
177 int currenttargetmeshid, currentframeid, speed, oldtargetmeshid, oldframeid;
181 bool ismorphinganimated, ismorphinganimationstoredonvram;
182 std::vector<int> framecounts;
191 void addTargetPositions(
const std::vector<gVertex>& targetvertices);
197 void addTargetNormals(
const std::vector<gVertex>& targetvertices);
Definition gMorphingMesh.h:27
int getCurrentTargetMeshId() const
void setMorphingAnimationStoredOnVram(bool isMorphingAnimationStoredOnVram)
void setTargetPosition(int targetId, int positionId, glm::vec3 newPosition)
void setTargetNormal(int targetId, int normalId, glm::vec3 newNormal)
int getCurrentFrameId() const
void resetTargetData(int targetId)
void interpolate(bool forceInterpolation=true)
void setMorphingAnimated(bool isMorphingAnimated)
const glm::vec3 & getTargetNormal(int targetId, int normalId) const
int getTargetMeshCount() const
const glm::vec3 & getTargetPosition(int targetId, int positionId) const
int getFrameCount(int targetMeshId) const
void setCurrentFrameId(int frameId)
void setBaseMesh(gMesh *baseMesh)
void setCurrentTargetMeshId(int targetMeshId)
int addTargetMesh(gMesh *targetMesh)
int getFrameCount() const
~gMorphingMesh() override
void setFrameCount(int targetMeshId, int frameCount)