Set all flex edges to rigid when the flex is rigid.

PiperOrigin-RevId: 629740153
Change-Id: Ib2fb6f64e3d160268d2521d63830f41e44d03b20
This commit is contained in:
Alessio Quaglino
2024-05-01 09:04:40 -07:00
committed by Copybara-Service
parent ad5bee73ef
commit 7eb8c4b9f4
5 changed files with 58 additions and 4 deletions
+8 -4
View File
@@ -2372,10 +2372,14 @@ void mjCModel::CopyObjects(mjModel* m) {
m->flex_edge[2*(edge_adr+k)] = pfl->edge[k].first;
m->flex_edge[2*(edge_adr+k)+1] = pfl->edge[k].second;
// check if vertex body weldids are the same
int b1 = pfl->vertbodyid[pfl->edge[k].first];
int b2 = pfl->vertbodyid[pfl->edge[k].second];
m->flexedge_rigid[edge_adr+k] = (bodies[b1]->weldid == bodies[b2]->weldid);
if (pfl->rigid) {
m->flexedge_rigid[edge_adr+k] = 1;
} else {
// check if vertex body weldids are the same
int b1 = pfl->vertbodyid[pfl->edge[k].first];
int b2 = pfl->vertbodyid[pfl->edge[k].second];
m->flexedge_rigid[edge_adr+k] = (bodies[b1]->weldid == bodies[b2]->weldid);
}
}
// advance counters