name = std::string((char*) (mesh->mName.data),(uint) (mesh->mName.length));\r
numvertices = mesh->mNumVertices;\r
numfaces = mesh->mNumFaces;\r
- vertex = new float[numvertices * 3];\r
- uvs = new float[numvertices * 2];\r
- index = new uint[numfaces * 3];\r
- normals = new float[numvertices * 3];\r
- //aiFace* faces = mesh->mFaces;\r
-\r
\r
//load vertices from Mesh\r
+ vertex = new float[numvertices * 3];\r
for (uint i = 0; i < numvertices; i++)\r
{\r
vertex[3 * i] = _scale.x * mesh->mVertices[i].x;\r
vertex[3 * i + 2] = _scale.z * mesh->mVertices[i].z;\r
}\r
\r
- //load UVs from Mesh\r
- for (uint i = 0; i < numvertices; i++)\r
- {\r
- uvs[2 * i] = mesh->mTextureCoords[0][i].x;//[i]->x;\r
- uvs[2 * i + 1] = mesh->mTextureCoords[0][i].y;//[i]->y;\r
- }\r
-\r
//load indices from Mesh\r
+ index = new uint[numfaces * 3];\r
for (uint i = 0; i < numfaces; i++)\r
{\r
index[3 * i] = mesh->mFaces[i].mIndices[0];\r
index[3 * i + 2] = mesh->mFaces[i].mIndices[2];\r
}\r
\r
+ //load UVs from Mesh\r
+ if (mesh->mTextureCoords[0] != NULL)\r
+ {\r
+ uvs = new float[numvertices * 2];\r
+ for (uint i = 0; i < numvertices; i++)\r
+ {\r
+ uvs[2 * i] = mesh->mTextureCoords[0][i].x;//[i]->x;\r
+ uvs[2 * i + 1] = mesh->mTextureCoords[0][i].y;//[i]->y;\r
+ }\r
+ }\r
+\r
//load normals from Mesh\r
- for (uint i = 0; i < numvertices; i++)\r
+ if (mesh->mNormals != NULL)\r
{\r
- normals[3 * i] = mesh->mNormals[i].x;// / _scale.x;\r
- normals[3 * i + 1] = mesh->mNormals[i].y;// / _scale.y;\r
- normals[3 * i + 2] = mesh->mNormals[i].z;// / _scale.z;\r
+ normals = new float[numvertices * 3];\r
+ for (uint i = 0; i < numvertices; i++)\r
+ {\r
+ normals[3 * i] = mesh->mNormals[i].x;// / _scale.x;\r
+ normals[3 * i + 1] = mesh->mNormals[i].y;// / _scale.y;\r
+ normals[3 * i + 2] = mesh->mNormals[i].z;// / _scale.z;\r
+ }\r
+\r
}\r
\r
return true;\r