Skip to main content
gamedev.net
🔒 Locked

lib3ds

Started by MindCode 0 replies 450+ views
Original Post
MindCode
MindCode
I'm using lib3ds to extract the triangle geometry from a 3ds file. For some reason it's crashing.
void Extract3dsNode(Lib3dsFile* p3ds, Lib3dsNode* pNode) {
	for(Lib3dsNode* i = pNode->childs; i != NULL; i = i->next) {
		Extract3dsNode(p3ds, i);
	}

	if(pNode->type == LIB3DS_OBJECT_NODE) {

		if(!strcmp(pNode->name, "$$$DUMMY")) {
			throw "Lib3ds: Invalid mesh name.";
		}

		Lib3dsMesh* pMesh;

		pMesh = lib3ds_file_mesh_by_name(p3ds, pNode->name);

		if(!pMesh) {
			throw "Lib3ds: Mesh name does not exist.";
		}

		for(int _i = 0; _i < pMesh->faces; ++_i) {

			Lib3dsFace* pFace;
			CTriangle Triangle;

			pFace = &pMesh->faceL[_i];

			for(int j = 0; j < 3; j++) {

				Triangle.m_vVector[j].x = pMesh->pointL[ pFace->points[j] ].pos[0];
				Triangle.m_vVector[j].y = pMesh->pointL[ pFace->points[j] ].pos[1];
				Triangle.m_vVector[j].z = pMesh->pointL[ pFace->points[j] ].pos[2];
			}

			Triangle.Gen(Vector3dv);
			m_vTriangles.push_back(Triangle);

		}
	}
}
 
From what I can tell, it crashes on the innermost loop, when it gets the vertex information. [edited by - MindCode on January 28, 2003 7:19:45 PM]
That's just my understanding; I could be wrong.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.