From 736e0b391b66d1056126e495c3aaaa2737664f93 Mon Sep 17 00:00:00 2001 From: Alessio Quaglino Date: Tue, 7 Jun 2022 23:58:31 -0700 Subject: [PATCH] Added visualization of site actuators. PiperOrigin-RevId: 453609866 Change-Id: Icde220687f0c0e9e7fbbe0e3e56d995f823ffe07 --- src/engine/engine_vis_visualize.c | 25 +++++++++++++++++++++++++ test/engine/testdata/sites.xml | 25 +++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 test/engine/testdata/sites.xml diff --git a/src/engine/engine_vis_visualize.c b/src/engine/engine_vis_visualize.c index 92d828d3..977f5998 100644 --- a/src/engine/engine_vis_visualize.c +++ b/src/engine/engine_vis_visualize.c @@ -857,6 +857,31 @@ void mjv_addGeoms(const mjModel* m, mjData* d, const mjvOption* vopt, FINISH } + // site actuators + if (m->actuator_trntype[i]==mjTRN_SITE) { + // actuator size is site size scaled by 1.1 + mju_scl3(sz, m->site_size+3*j, 1.1); + + START + + // make geom overlapping the actuated site + mjv_initGeom(thisgeom, + m->site_type[j], sz, + d->site_xpos + 3*j, + d->site_xmat + 9*j, + thisgeom->rgba); + + // set interpolated color + f2f(thisgeom->rgba, rgba, 4); + + // vopt->label + if (vopt->label==mjLABEL_ACTUATOR) { + makeLabel(m, mjOBJ_ACTUATOR, i, thisgeom->label); + } + + FINISH + } + // spatial tendon actuators else if (m->actuator_trntype[i]==mjTRN_TENDON && d->ten_wrapnum[j]) { for (int k=d->ten_wrapadr[j]; kten_wrapadr[j]+d->ten_wrapnum[j]-1; k++) { diff --git a/test/engine/testdata/sites.xml b/test/engine/testdata/sites.xml new file mode 100644 index 00000000..53771335 --- /dev/null +++ b/test/engine/testdata/sites.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + +