3 #ifdef ASSIMP_VERSION_3
4 #include <assimp/Importer.hpp>
5 #include <assimp/scene.h>
7 #include <assimp/assimp.hpp>
8 #include <assimp/aiScene.h>
11 #include <console_bridge/console.h>
28 const aiMatrix4x4&
t = node->mTransformation;
35 for(
unsigned int i = 0; i < node->mNumChildren; ++i)
37 constructMesh(scene, node->mChildren[i], pose, scale_x, scale_y, scale_z, transform, mesh);
40 for(
unsigned int i = 0; i < node->mNumMeshes; ++i)
42 aiMesh* m = scene->mMeshes[node->mMeshes[i]];
47 for(
unsigned int j = 0; j < m->mNumVertices; ++j) {
48 const aiVector3D& v = m->mVertices[j];
50 int ix = 1000 * scale_x * v.x;
51 int iy = 1000 * scale_y * v.y;
52 int iz = 1000 * scale_z * v.z;
56 if (it1 != xyz_map.
end()) {
58 if (it2 != it1->second.
end()) {
60 if (it3 != it2->second.
end()) {
61 i_map[j] = it3->second;
72 int ip = mesh->
addPoint(scale_x * p.x, scale_y * p.y, scale_z * p.z);
73 xyz_map[ix][iy][iz] = ip;
80 int num_triangles = 0;
81 for(
unsigned int j = 0; j < m->mNumFaces; ++j) {
82 const aiFace& f = m->mFaces[j];
83 if (f.mNumIndices == 3) {
84 int ix = i_map[f.mIndices[0]];
85 int iy = i_map[f.mIndices[1]];
86 int iz = i_map[f.mIndices[2]];
90 if (it1 != triangle_map.
end()) {
92 if (it2 != it1->second.
end()) {
93 if (it2->second.
find(iz) != it2->second.
end()) {
101 triangle_map[ix][iy].
insert(iz);
115 const aiScene* scene = I.ReadFile(filename, 0);
120 ss <<
"Assimp failed to load file: " << filename <<
std::endl;
122 CONSOLE_BRIDGE_logError(str.
c_str());
127 bool transform =
true;
128 if (filename.
substr(filename.
size() - 3) ==
"3ds")
137 if (filename.
substr(filename.
size() - 3) ==
"dae")
142 const aiMatrix4x4&
t = scene->mRootNode->mTransformation;
151 shape->setMesh(mesh);