unsigned int WavefrontObj::loadObj(const char *fname, bool textured) // load a wavefront obj returns number of triangles that were loaded. Data is persists until the class is destructed. { unsigned int ret = 0; delete []mVertices; mVertices = 0; delete []mIndices; mIndices = 0; mVertexCount = 0; mTriCount = 0; BuildMesh bm; OBJ obj; obj.LoadMesh(fname, &bm, textured); if (bm.GetNumVertices()) { mVertexCount = bm.GetNumVertices()/3; mVertices = new float[mVertexCount*3]; memcpy(mVertices, bm.GetVertices(), sizeof(float)*mVertexCount*3); if (textured) { mTexCoords = new float[mVertexCount * 2]; memcpy(mTexCoords, bm.GetTexCoords(), sizeof(float) * mVertexCount * 2); } mTriCount = bm.GetNumIndices()/3; mIndices = new int[mTriCount*3]; memcpy(mIndices, bm.GetIndices(), sizeof(int)*mTriCount*3); ret = mTriCount; } return ret; }