Label all bodies, not just selected bodies, when mjLABEL_BODY is set.
An earlier refactor incorrectly assumed that only selected bodies needed labels. PiperOrigin-RevId: 818568645 Change-Id: I7aea07c5342673dd589e1891d0db1f2b0c489fe4
This commit is contained in:
committed by
Copybara-Service
parent
d9399d6f84
commit
66a1c22cae
@@ -1827,31 +1827,33 @@ static void addSelectionPointGeoms(const mjModel* m, mjData* d, const mjvOption*
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void addSelectionBodyLabelGeoms(const mjModel* m, mjData* d, const mjvOption* vopt,
|
static void addBodyLabelGeoms(const mjModel* m, mjData* d, const mjvOption* vopt,
|
||||||
const mjvPerturb* pert, int catmask, mjvScene* scn) {
|
const mjvPerturb* pert, int catmask, mjvScene* scn) {
|
||||||
if (vopt->flags[mjVIS_INERTIA]) {
|
if (vopt->flags[mjVIS_INERTIA]) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (vopt->label != mjLABEL_SELECTION && vopt->label != mjLABEL_BODY) {
|
if (vopt->label != mjLABEL_SELECTION && vopt->label != mjLABEL_BODY) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (pert->select <= 0 || pert->select >= m->nbody) {
|
for (int i=1; i < m->nbody; i++) {
|
||||||
return;
|
if (vopt->label == mjLABEL_SELECTION && pert->select != i) {
|
||||||
}
|
continue;
|
||||||
if (bodycategory(m, pert->select) & ~catmask) {
|
}
|
||||||
return;
|
if (bodycategory(m, i) & ~catmask) {
|
||||||
}
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
mjvGeom* thisgeom = acquireGeom(scn, pert->select, mjCAT_DECOR, mjOBJ_UNKNOWN);
|
mjvGeom* thisgeom = acquireGeom(scn, i, mjCAT_DECOR, mjOBJ_UNKNOWN);
|
||||||
if (!thisgeom) {
|
if (!thisgeom) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
thisgeom->type = mjGEOM_LABEL;
|
thisgeom->type = mjGEOM_LABEL;
|
||||||
mju_n2f(thisgeom->pos, d->xpos+3*pert->select, 3);
|
mju_n2f(thisgeom->pos, d->xpos+3*i, 3);
|
||||||
mju_n2f(thisgeom->mat, d->xmat+9*pert->select, 9);
|
mju_n2f(thisgeom->mat, d->xmat+9*i, 9);
|
||||||
makeLabel(m, mjOBJ_BODY, pert->select, thisgeom->label);
|
makeLabel(m, mjOBJ_BODY, i, thisgeom->label);
|
||||||
releaseGeom(&thisgeom, scn);
|
releaseGeom(&thisgeom, scn);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2640,7 +2642,7 @@ void mjv_addGeoms(const mjModel* m, mjData* d, const mjvOption* vopt,
|
|||||||
addPerturbGeoms(m, d, vopt, pert, scn);
|
addPerturbGeoms(m, d, vopt, pert, scn);
|
||||||
addWorldBodyFrameGeoms(m, d, vopt, catmask, scn);
|
addWorldBodyFrameGeoms(m, d, vopt, catmask, scn);
|
||||||
addSelectionPointGeoms(m, d, vopt, pert, scn);
|
addSelectionPointGeoms(m, d, vopt, pert, scn);
|
||||||
addSelectionBodyLabelGeoms(m, d, vopt, pert, catmask, scn);
|
addBodyLabelGeoms(m, d, vopt, pert, catmask, scn);
|
||||||
addJointGeoms(m, d, vopt, scn);
|
addJointGeoms(m, d, vopt, scn);
|
||||||
addActuatorGeoms(m, d, vopt, scn);
|
addActuatorGeoms(m, d, vopt, scn);
|
||||||
addIslandLabelGeoms(m, d, vopt, scn);
|
addIslandLabelGeoms(m, d, vopt, scn);
|
||||||
|
|||||||
Reference in New Issue
Block a user