From 88e92bfbf89bbe9749a3058fc0b273ff209aa204 Mon Sep 17 00:00:00 2001 From: "Asad M. Zaman" Date: Tue, 9 Mar 2004 21:36:32 +0000 Subject: [PATCH] fixed a bug regarding dog shorts/skirts models. It happened because FindClosestTriVert was not comparing last vertex...dohhh. Anyway, it is fixed now. --- pandatool/src/softegg/softToEggConverter.cxx | 23 ++++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/pandatool/src/softegg/softToEggConverter.cxx b/pandatool/src/softegg/softToEggConverter.cxx index cb7d196b69..823b261f4f 100755 --- a/pandatool/src/softegg/softToEggConverter.cxx +++ b/pandatool/src/softegg/softToEggConverter.cxx @@ -1597,7 +1597,7 @@ FindClosestTriVert( EggVertexPool *vpool, SAA_DVector *vertices, int numVert ) { LPoint3d p3d = vert->get_pos3(); // find closest model vertex - for ( j = 0; j < numVert-1; j++ ) { + for ( j = 0; j < numVert; j++ ) { // calculate distance thisDist = sqrtf( powf( p3d[0] - vertices[j].x , 2 ) + @@ -1610,18 +1610,17 @@ FindClosestTriVert( EggVertexPool *vpool, SAA_DVector *vertices, int numVert ) { closestDist = thisDist; } } + vertMap[i] = closest; - softegg_cat.spam() << "mapping v " << i << " of " << vpoolSize-1 << ":( " - << p3d[0] << " " - << p3d[1] << " " - << p3d[2] << ")\n"; - + << p3d[0] << " " + << p3d[1] << " " + << p3d[2] << ")\n"; + softegg_cat.spam() << " to cv " << closest << " of " << numVert-1 << ":( " - << vertices[closest].x << " " - << vertices[closest].y << " " - << vertices[closest].z << " )\tdelta = " << closestDist << endl; - + << vertices[closest].x << " " + << vertices[closest].y << " " + << vertices[closest].z << " )\tdelta = " << closestDist << endl; } return vertMap; } @@ -1825,7 +1824,7 @@ make_soft_skin() { // first get the global matrix SAA_modelGetMatrix( &scene, &envelopes[i], SAA_COORDSYS_GLOBAL, matrix ); - + // populate array of global model verts for ( j = 0; j < modelNumVert; j++ ) { _VCT_X_MAT( globalModelVertices[j], @@ -1889,7 +1888,7 @@ make_soft_skin() { for ( k = 0; k < (int)vpool->size(); k++ ) { if ( vpoolMap[k] == envVtxIndices[j] ) { EggVertex *vert = vpool->get_vertex(k+1); - // EggVertex *vert = mesh_node->get_vpool()->get_vertex(vpoolMap[k]+1); + // EggVertex *vert = mesh_node->get_vpool()->get_vertex(vpoolMap[k]+1); if (!vert) { softegg_cat.debug() << "possible error: index " << k+1 << ": vert is " << vert << endl; break;