#endif
#include <glm/glm.hpp>
#include <assimp/scene.h>
-#include <assimp/Importer.hpp>
#include "material.hpp"
#include "program.hpp"
#include "skybox.hpp"
+inline glm::mat4 aiMatrixToMat4(aiMatrix4x4 from) {
+ glm::mat4 to;
+ for (int i = 0; i < 4; i++)
+ for (int j = 0; j < 4; j++)
+ to[i][j] = from[j][i];
+ return to;
+}
+
class Model {
struct Animation {
};
public:
- Model(const std::string &path, Program p);
+ Model(const aiScene *scene, Program p);
void draw(Skybox skybox, const float tick) const;
class Node {
void draw(const std::vector<Mesh> &meshes, const std::vector<Material> &materials, const Skybox s, const float tick, glm::mat4 parentModel, BoneTransforms boneTransforms) const;
const std::vector<Node*> &getChildren() const { return children; }
Node* findNode(const aiNode &aiNode);
- glm::mat4 model = glm::mat4(1);
const aiNode &ai;
private:
std::vector<Material> materials;
void loadModel(const std::string &path);
-
- Assimp::Importer importer;
};