21 #include "linmath/float3.h" 24 #include "assimp/material.h" 26 #include <assimp/scene.h> 28 #include <assimp/Importer.hpp> 51 void loadMesh(
const std::string &fileName);
74 std::vector<Chunk>* getChunks();
75 std::vector<Material>* getMaterials();
96 void initMesh(
const aiScene *pScene,
const std::string &fileNameOfMesh);
97 void initMeshFromAiMesh(
unsigned int index,
const aiMesh *paiMesh);
98 void initChunkFromAiMesh(
const aiMesh *paiMesh,
Chunk &chunk);
99 void initVerticesFromAiMesh(
const aiMesh *paiMesh,
Chunk &chunk);
100 void initIndicesFromAiMesh(
const aiMesh *paiMesh,
Chunk &chunk);
102 void initBonesFromAiMesh(
const aiMesh *paiMesh,
Chunk &bones);
103 void assertAllVertexWeightsSumToOne(
Chunk &chunk);
112 void initMaterials(
const aiScene *pScene,
const std::string &fileNameOfMesh);
113 void initMaterialTextures(
Material *material, std::string fileNameOfMesh,
114 const aiMaterial *loadedMaterial);
115 void initMaterialColors(
Material *material,
const aiMaterial *loadedMaterial);
116 void initMaterialShininess(
Material *material,
const aiMaterial *loadedMaterial);
128 chag::float3 getColorFromMaterial(
const char* colorTypeString,
unsigned int type,
129 unsigned int index,
const aiMaterial &material);
138 std::string getPathOfTexture(
const std::string &fileNameOfMesh,
139 std::string textureName);
144 std::string getDirectoryFromPath(
const std::string &fileName);
151 std::string cleanFileName(std::string filePath);
163 Texture* getTexture(
const aiMaterial *material,
const std::string &fileNameOfMesh,
170 void setupChunkForRendering(
Chunk &chunk);
172 void setupSphere(std::vector<chag::float3> *positions);
174 void createTriangles();
175 Triangle* createTriangleFromPositions(std::vector<chag::float3> positionBuffer,
176 std::vector<unsigned int> indices,
177 unsigned int startIndex);
179 std::vector<Triangle *> triangles;
180 std::vector<Material> materials;
181 std::vector<Chunk> m_chunks;
183 std::shared_ptr<BoneTransformer> boneTransformer;
184 Assimp::Importer importer;
189 unsigned int numAnimations;
std::vector< Triangle * > getTriangles()
std::vector< chag::float4x4 > getBoneTransforms(float totalElapsedTimeInSeconds)
Struct for maintaining information of how a bone affects a vertex.