Flip vertex order for convex hull properly

This commit is contained in:
Kawe Mazidjatari 2022-07-27 21:13:36 +02:00
parent 87a42efd72
commit f0eecc80ff
2 changed files with 12 additions and 10 deletions

View File

@ -64,7 +64,7 @@ static int convexhull(const float* pts, int npts, int* out)
out[i++] = hull;
endpt = 0;
for (int j = 1; j < npts; ++j)
if (hull == endpt || left(&pts[hull*3], &pts[j*3], &pts[endpt*3]))
if (hull == endpt || left(&pts[hull*3], &pts[endpt*3], &pts[j*3]))
endpt = j;
hull = endpt;
}

View File

@ -605,15 +605,17 @@ void InputGeom::drawConvexVolumes(struct duDebugDraw* dd, bool /*hilight*/)
const float* va = &vol->verts[k*3];
const float* vb = &vol->verts[j*3];
dd->vertex(va[0],va[1],vol->hmax, col);
dd->vertex(vb[0],vb[1],vol->hmax, col);
dd->vertex(vol->verts[0],vol->verts[1],vol->hmax, col);
dd->vertex(vb[0],vb[1],vol->hmax, col);
dd->vertex(va[0],va[1],vol->hmax, col);
dd->vertex(va[0],va[1],vol->hmin, duDarkenCol(col));
dd->vertex(va[0],va[1],vol->hmax, col);
dd->vertex(vb[0],vb[1],vol->hmax, col);
dd->vertex(va[0],va[1],vol->hmin, duDarkenCol(col));
dd->vertex(vb[0],vb[1],vol->hmax, col);
dd->vertex(vb[0],vb[1],vol->hmin, duDarkenCol(col));
dd->vertex(vb[0],vb[1],vol->hmax, col);
dd->vertex(va[0],va[1],vol->hmin, duDarkenCol(col));
}
}
@ -634,12 +636,12 @@ void InputGeom::drawConvexVolumes(struct duDebugDraw* dd, bool /*hilight*/)
{
const float* va = &vol->verts[k*3];
const float* vb = &vol->verts[j*3];
dd->vertex(va[0],va[1],vol->hmin, duDarkenCol(col));
dd->vertex(vb[0],vb[1],vol->hmin, duDarkenCol(col));
dd->vertex(va[0],va[1],vol->hmax, col);
dd->vertex(vb[0],vb[1],vol->hmax, col);
dd->vertex(va[0],va[1],vol->hmin, duDarkenCol(col));
dd->vertex(vb[0],vb[1],vol->hmax, col);
dd->vertex(va[0],va[1],vol->hmax, col);
dd->vertex(va[0],va[1],vol->hmax, col);
dd->vertex(va[0],va[1],vol->hmin, duDarkenCol(col));
}
}
dd->end();
@ -657,9 +659,9 @@ void InputGeom::drawConvexVolumes(struct duDebugDraw* dd, bool /*hilight*/)
for (int j = 0; j < vol->nverts; ++j)
{
dd->vertex(vol->verts[j*3+0],vol->verts[j*3+1]+0.1f,vol->verts[j*3+2], col);
dd->vertex(vol->verts[j*3+0],vol->verts[j*3+1],vol->hmin, col);
dd->vertex(vol->verts[j*3+0],vol->verts[j*3+1],vol->hmax, col);
dd->vertex(vol->verts[j*3+0],vol->verts[j*3+1],vol->hmin, col);
dd->vertex(vol->verts[j*3+0],vol->verts[j*3+1]+0.1f,vol->verts[j*3+2], col);
}
}
dd->end();