Restore flex island invariants in comments
Signed-off-by: teerthsharma <teerths57@gmail.com>
This commit is contained in:
committed by
teerthsharma
parent
cdda847191
commit
7ae4f22693
@@ -410,9 +410,15 @@ static void unionConstraintTrees(const mjModel* m, const mjData* d, int* parent,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Flex stiffness couples all vertices (nodes for interpolated flexes) without a constraint
|
// flex stiffness couples all vertices (nodes for interpolated flexes) of a flex without any
|
||||||
// row representing the coupling. Union the awake dynamic trees of each stiffness-active flex.
|
// constraint row representing the coupling: union the trees of every stiffness-active flex
|
||||||
|
// (star around the first dynamic tree). This keeps the partition valid when the implicit
|
||||||
|
// effective metric (mj_flexCG) carries the stiffness inside the constraint solve. Awake
|
||||||
|
// trees only: sleeping trees must stay out of islands (mj_sleep invariant, matching the
|
||||||
|
// constraint filter); waking a flex as a unit remains the wake machinery's job.
|
||||||
for (int f=0; f < m->nflex; f++) {
|
for (int f=0; f < m->nflex; f++) {
|
||||||
|
// mirror the stiffness-activity conditions of engine_derivative's flexStiff_active /
|
||||||
|
// flexInterp_processed: deformable dim>=2 flex with bending or nonzero stiffness
|
||||||
if (m->flex_rigid[f] || m->flex_dim[f] < 2) {
|
if (m->flex_rigid[f] || m->flex_dim[f] < 2) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user