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

This commit is contained in:
Asad M. Zaman 2004-03-09 21:36:32 +00:00
parent 1121e150eb
commit 88e92bfbf8
1 changed files with 11 additions and 12 deletions

View File

@ -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;