Update Solid and Shell plugins to use FlexComp.
PiperOrigin-RevId: 573755821 Change-Id: I3b8d7fb27f0e940038fa9fd2b26ecc746df4f7ac
This commit is contained in:
committed by
Copybara-Service
parent
93d1c3c92e
commit
110ade1435
@@ -1814,6 +1814,8 @@ void mj_collideFlexSAP(const mjModel* m, mjData* d, int f) {
|
||||
|
||||
// test a geom and an elem for collision, add to contact list
|
||||
void mj_collideGeomElem(const mjModel* m, mjData* d, int g, int f, int e) {
|
||||
TM_START;
|
||||
|
||||
mjtNum margin = mj_assignMargin(m, mju_max(m->geom_margin[g], m->flex_margin[f]));
|
||||
int dim = m->flex_dim[f], type = m->geom_type[g];
|
||||
int num;
|
||||
@@ -1927,6 +1929,9 @@ void mj_collideGeomElem(const mjModel* m, mjData* d, int g, int f, int e) {
|
||||
|
||||
// move arena pointer back to the end of the contact array
|
||||
resetArena(d);
|
||||
|
||||
// add duration without incrementing counter
|
||||
TM_ADD(mjTIMER_COL_NARROW);
|
||||
}
|
||||
|
||||
|
||||
@@ -1934,6 +1939,7 @@ void mj_collideGeomElem(const mjModel* m, mjData* d, int g, int f, int e) {
|
||||
// test two elems for collision, add to contact list
|
||||
void mj_collideElems(const mjModel* m, mjData* d, int f1, int e1, int f2, int e2) {
|
||||
TM_START;
|
||||
|
||||
mjtNum margin = mj_assignMargin(m, mju_max(m->flex_margin[f1], m->flex_margin[f2]));
|
||||
int dim1 = m->flex_dim[f1], dim2 = m->flex_dim[f2];
|
||||
int num;
|
||||
|
||||
@@ -537,9 +537,7 @@ void mj_flex(const mjModel* m, mjData* d) {
|
||||
// compute lengths and Jacobians of edges
|
||||
for (int f=0; f < m->nflex; f++) {
|
||||
// skip if edges cannot generate forces
|
||||
if (m->flex_rigid[f] ||
|
||||
(m->flex_edgeequality[f] == 0 &&
|
||||
m->flex_edgestiffness[f] == 0 && m->flex_edgedamping[f] == 0)) {
|
||||
if (m->flex_rigid[f]) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -948,11 +948,11 @@ void mj_energyPos(const mjModel* m, mjData* d) {
|
||||
}
|
||||
}
|
||||
|
||||
// add flex-level springs
|
||||
// add flex-level springs for dim=1 (dim>1 requires plugins)
|
||||
if (!mjDISABLED(mjDSBL_PASSIVE)) {
|
||||
for (int i=0; i < m->nflex; i++) {
|
||||
stiffness = m->flex_edgestiffness[i];
|
||||
if (m->flex_rigid[i] || stiffness == 0) {
|
||||
if (m->flex_rigid[i] || stiffness == 0 || m->flex_dim[i] > 1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user