diff --git a/src/engine/engine_derivative.c b/src/engine/engine_derivative.c index d8b4c8bc..7bd35a95 100644 --- a/src/engine/engine_derivative.c +++ b/src/engine/engine_derivative.c @@ -1193,7 +1193,7 @@ void mjd_ellipsoidFluid(const mjModel* m, mjData* d, int bodyid) { for (int j=0; j < m->body_geomnum[bodyid]; j++) { const int geomid = m->body_geomadr[bodyid] + j; - mju_geomSemiAxes(m, geomid, semiaxes); + mju_geomSemiAxes(semiaxes, m->geom_size + 3*geomid, m->geom_type[geomid]); readFluidGeomInteraction( m->geom_fluid + mjNFLUID*geomid, &geom_interaction_coef, diff --git a/src/engine/engine_passive.c b/src/engine/engine_passive.c index 5b0d1b5b..5e222340 100644 --- a/src/engine/engine_passive.c +++ b/src/engine/engine_passive.c @@ -635,7 +635,7 @@ void mj_ellipsoidFluidModel(const mjModel* m, mjData* d, int bodyid) { for (int j=0; j < m->body_geomnum[bodyid]; j++) { const int geomid = m->body_geomadr[bodyid] + j; - mju_geomSemiAxes(m, geomid, semiaxes); + mju_geomSemiAxes(semiaxes, m->geom_size + 3*geomid, m->geom_type[geomid]); readFluidGeomInteraction( m->geom_fluid + mjNFLUID*geomid, &geom_interaction_coef, diff --git a/src/engine/engine_util_misc.c b/src/engine/engine_util_misc.c index 03435f48..1ca318fb 100644 --- a/src/engine/engine_util_misc.c +++ b/src/engine/engine_util_misc.c @@ -422,9 +422,8 @@ mjtNum mju_wrap(mjtNum wpnt[6], const mjtNum x0[3], const mjtNum x1[3], // all 3 semi-axes of a geom -void mju_geomSemiAxes(const mjModel* m, int geom_id, mjtNum semiaxes[3]) { - mjtNum* size = m->geom_size + 3*geom_id; - switch ((mjtGeom) m->geom_type[geom_id]) { +void mju_geomSemiAxes(mjtNum semiaxes[3], const mjtNum size[3], mjtGeom type) { + switch (type) { case mjGEOM_SPHERE: semiaxes[0] = size[0]; semiaxes[1] = size[0]; diff --git a/src/engine/engine_util_misc.h b/src/engine/engine_util_misc.h index f7f23782..9c6db647 100644 --- a/src/engine/engine_util_misc.h +++ b/src/engine/engine_util_misc.h @@ -51,7 +51,7 @@ MJAPI mjtNum mju_muscleDynamicsTimescale(mjtNum dctrl, mjtNum tau_act, mjtNum ta MJAPI mjtNum mju_muscleDynamics(mjtNum ctrl, mjtNum act, const mjtNum prm[3]); // all 3 semi-axes of a geom -MJAPI void mju_geomSemiAxes(const mjModel* m, int geom_id, mjtNum semiaxes[3]); +MJAPI void mju_geomSemiAxes(mjtNum semiaxes[3], const mjtNum size[3], mjtGeom type); // ----------------------------- Flex interpolation ------------------------------------------------