27 #include <assimp/Importer.hpp>
28 #include <assimp/cimport.h>
29 #include <assimp/scene.h>
30 #include <assimp/postprocess.h>
32 #include <boost/bimap.hpp>
34 #include "repo_model_import_abstract.h"
35 #include "../../../core/model/collection/repo_scene.h"
36 #include "../../../core/model/bson/repo_node_camera.h"
37 #include "../../../core/model/bson/repo_node_material.h"
38 #include "../../../core/model/bson/repo_node_mesh.h"
39 #include "../../../core/model/bson/repo_node_metadata.h"
40 #include "../../../core/model/bson/repo_node_transformation.h"
43 namespace manipulator{
44 namespace modelconvertor{
64 static std::string getSupportedFormats();
80 bool importModel(std::string filePath, std::string &errMsg);
97 const aiCamera *assimpCamera);
107 const aiMaterial *material,
108 const std::string &name,
109 const std::unordered_map<std::string, repo::core::model::RepoNode *> &nameToTexture);
119 const aiMesh *assimpMesh,
120 const std::vector<repo::core::model::RepoNode *> &materials,
122 const bool hasTexture,
123 const std::vector<double> &offset);
133 const aiMetadata *assimpMeta,
134 const std::string &metadataName,
135 const std::vector<repoUUID> &parents = std::vector<repoUUID>());
148 repo::core::model::RepoNodeSet createTransformationNodesRecursive(
149 const aiNode *assimpNode,
150 const std::unordered_map<std::string, repo::core::model::RepoNode *> &cameras,
151 const std::vector<repo::core::model::RepoNode > &meshes,
152 const std::unordered_map<repoUUID, repo::core::model::RepoNode *, RepoUUIDHasher> &meshToMat,
154 repo::core::model::RepoNodeSet &newMeshes,
155 repo::core::model::RepoNodeSet &metadata,
157 const std::vector<double> &worldOffset,
158 const std::vector<repoUUID> &parent = std::vector<repoUUID>()
169 const std::unordered_map<repoUUID, repo::core::model::RepoNode *, RepoUUIDHasher> &meshToMat,
176 std::vector<std::vector<double>> getAiMeshBoundingBox(
177 const aiMesh *mesh)
const;
183 std::vector<std::vector<double>> getSceneBoundingBox()
const;
185 void getSceneBoundingBoxInternal(
187 const aiMatrix4x4 &mat,
188 std::vector<std::vector<double>> &bbox)
const;
194 void loadTextures(std::string folderPath);
199 void setAssimpProperties();
206 uint32_t composeAssimpPostProcessingFlags(
209 Assimp::Importer importer;
210 const aiScene *assimpScene;
bool importModel(std::string filePath, std::string &errMsg)
Definition: repo_model_import_assimp.cpp:1154
AssimpModelImport()
Definition: repo_model_import_assimp.cpp:38
Definition: repo_connection_pool_mongo.h:32
Definition: repo_node_camera.h:41
repo::core::model::RepoScene * generateRepoScene()
Definition: repo_model_import_assimp.cpp:1034
Definition: repo_node_material.h:43
Definition: repo_scene.h:44
virtual ~AssimpModelImport()
Definition: repo_model_import_assimp.cpp:49
Definition: repo_node_mesh.h:62
Definition: repo_node.h:33
Definition: repo_model_import_assimp.h:45
Definition: repo_model_import_config.h:33
Definition: repo_model_import_abstract.h:32