Пример #1
0
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

}
Пример #2
0
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);
}