Quellcode durchsuchen

fixed a bug regarding dog shorts/skirts models. It happened because FindClosestTriVert was not comparing last vertex...dohhh. Anyway, it is fixed now.

Asad M. Zaman vor 22 Jahren
Ursprung
Commit
88e92bfbf8
1 geänderte Dateien mit 11 neuen und 12 gelöschten Zeilen
  1. 11 12
      pandatool/src/softegg/softToEggConverter.cxx

+ 11 - 12
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;