Fix bug in replaceSimplex3 in nativeccd.

PiperOrigin-RevId: 746014344
Change-Id: I93b32ab5f67ee48ab72238de53f7cda07638cb79
This commit is contained in:
Kyle Bayes
2025-04-10 07:03:23 -07:00
committed by Copybara-Service
parent 25126e88c7
commit b1f8d444f2
4 changed files with 123 additions and 14 deletions
+6 -12
View File
@@ -834,22 +834,16 @@ static void S1D(mjtNum lambda[2], const mjtNum s1[3], const mjtNum s2[3]) {
// replace a 3-simplex with one of its faces
static inline void replaceSimplex3(Polytope* pt, mjCCDStatus* status, int v1, int v2, int v3) {
// reset status simplex
status->nsimplex = 3;
Vertex* v = pt->verts;
copy3(status->simplex[0].vert1, v[v1].vert1);
copy3(status->simplex[1].vert1, v[v2].vert1);
copy3(status->simplex[2].vert1, v[v3].vert1);
copy3(status->simplex[0].vert2, v[v1].vert2);
copy3(status->simplex[1].vert2, v[v2].vert2);
copy3(status->simplex[2].vert2, v[v3].vert2);
copy3(status->simplex[0].vert, v[v1].vert);
copy3(status->simplex[1].vert, v[v2].vert);
copy3(status->simplex[2].vert, v[v3].vert);
status->simplex[0] = pt->verts[v1];
status->simplex[1] = pt->verts[v2];
status->simplex[2] = pt->verts[v3];
// reset polytope
pt->nfaces = 0;
pt->nverts = 0;
pt->nmap = 0;
}