void QModelRAW::Import() { QFrame *pNewFrame = new QFrame(m_pEngine,1); // Crea frame con espacio para 1 QMalla QMesh *pNewMesh = new QMesh(1); // Crea QMalla con espacio para una QPrimitiva // Crea primitiva : QTriangleList basado en los datos leidos QTriangleList *pNewTriangleList = new QTriangleList(m_pEngine,NumVertex,pVertexList, NumTriangles,pTriangleList,0,NULL); // Crea lista de triangulos // Añadir primitiva a la QMalla pNewMesh->AddPrimitive(pNewTriangleList); // Añadir QMalla a QFrame pNewFrame->AddMesh(pNewMesh); // Añadir el QFrame final AddFrame(pNewFrame); // IMPORTANTE // SE CREAN AQUILAS MESHES //QMesh *pMesh = new QMesh(MAX_PRIMITIVES_PER_MESH,m_pEngine,NumVertex,pVertexList, NumTriangles,pTriangleList); //m_pMeshes[m_NumMeshes] = pMesh; //m_NumMeshes++; // delete pMesh; NO, porque se destruye en pmeshes }
void QModelMS3D::Import() { // Convierte vertices //CVector3 *pNewVertex; float *pVertexList = new float[m_NumVertex*3]; //pNewVertex = new CVector3[m_NumVertex]; int c = 0; for (int f=0;f<m_NumVertex;f++) { pVertexList[c] = m_pVertex[f].Vertex[0]; pVertexList[c+1] = m_pVertex[f].Vertex[1]; pVertexList[c+2] = m_pVertex[f].Vertex[2]; c+=3; } // Convierte triangulos QFrame *pNewFrame = new QFrame(m_pEngine,1); // Crea frame con espacio para 1 QMalla for (int g=0;g<m_NumGroups;g++) // PONER GRUPOS { QMesh *pNewMesh = new QMesh(1); // Crea QMalla con espacio para una QPrimitiva c=0; unsigned int *pFaces = new unsigned int[m_pGroups[g].NumTriangles*3]; for (int t=0;t<m_pGroups[g].NumTriangles;t++) { int triangleIndex = m_pGroups[g].pTriangleIndices[t]; const MS3D_TRIANGLE* tri= &m_pTriangles[triangleIndex]; for(int loop3=0; loop3<3; loop3++) { int index= tri->VertexIndices[loop3]; // glNormal3fv( tri->VertexNormals[loop3]); // glTexCoord2f(tri->u[loop3], tri->v[loop3]); // glVertex3fv(m_pVertex[index].Vertex); pFaces[c]=index; c++; } } QTriangleList *pNewTriangleList = new QTriangleList(m_pEngine,m_NumVertex,pVertexList, m_pGroups[g].NumTriangles,pFaces,0, NULL); // Crea lista de triangulos // Añadir primitiva a la QMalla pNewMesh->AddPrimitive(pNewTriangleList); // Añadir QMalla a QFrame pNewFrame->AddMesh(pNewMesh); } // Añadir el QFrame final AddFrame(pNewFrame); }