static float distToTriMesh(const float* p, const float* verts, const int /*nverts*/, const int* tris, const int ntris) { float dmin = FLT_MAX; for (int i = 0; i < ntris; ++i) { const float* va = &verts[tris[i*4+0]*3]; const float* vb = &verts[tris[i*4+1]*3]; const float* vc = &verts[tris[i*4+2]*3]; float d = distPtTri(p, va,vb,vc); if (d < dmin) dmin = d; } if (dmin == FLT_MAX) return -1; return dmin; }
static float distToTriMesh(const dtCoordinates& p, const dtCoordinates* verts, const int /*nverts*/, const int* tris, const int ntris) { float dmin = FLT_MAX; for (int i = 0; i < ntris; ++i) { const dtCoordinates va( verts[tris[i*4+0]] ); const dtCoordinates vb( verts[tris[i*4+1]] ); const dtCoordinates vc( verts[tris[i*4+2]] ); float d = distPtTri(p, va,vb,vc); if (d < dmin) dmin = d; } if (dmin == FLT_MAX) return -1; return dmin; }