Add body/simple attribute to control simple body optimization.
PiperOrigin-RevId: 942164766 Change-Id: I1e83bb99b6a1955917eb9b2e9bed0dc7b8e6a161
This commit is contained in:
committed by
Copybara-Service
parent
4ecfe5c1f3
commit
5618666a7d
@@ -82,6 +82,9 @@ void mjs_defaultBody(mjsBody* body) {
|
||||
body->ipos[0] = mjNAN;
|
||||
body->iquat[0] = 1;
|
||||
body->fullinertia[0] = mjNAN;
|
||||
|
||||
// simple optimization: auto
|
||||
body->simple = 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1002,6 +1002,11 @@ void mjCModel::ComputeSparseSizes() {
|
||||
bodies_[parentid]->parent &&
|
||||
bodies_[parentid]->parent->id == 0 &&
|
||||
bodies_[parentid]->dofnum == 0)));
|
||||
|
||||
// user override: disable simple optimization
|
||||
if (!pb->simple) {
|
||||
body_simple_pre[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// a parent body is never simple (unless world)
|
||||
@@ -2816,6 +2821,11 @@ void mjCModel::CopyTree(mjModel* m) {
|
||||
(m->body_parentid[parentid] == 0 &&
|
||||
m->body_dofnum[parentid] == 0)));
|
||||
|
||||
// user override: disable simple optimization
|
||||
if (!pb->simple) {
|
||||
m->body_simple[i] = 0;
|
||||
}
|
||||
|
||||
// a parent body is never simple (unless world)
|
||||
if (m->body_parentid[i] > 0) {
|
||||
m->body_simple[m->body_parentid[i]] = 0;
|
||||
|
||||
Reference in New Issue
Block a user