diff --git a/src/engine/engine_util_spatial.c b/src/engine/engine_util_spatial.c index 247a44d2..576d0274 100644 --- a/src/engine/engine_util_spatial.c +++ b/src/engine/engine_util_spatial.c @@ -323,9 +323,14 @@ void mju_trnVecPose(mjtNum res[3], const mjtNum pos[3], const mjtNum quat[4], co // vector cross-product, 3D void mju_cross(mjtNum res[3], const mjtNum a[3], const mjtNum b[3]) { - res[0] = a[1]*b[2] - a[2]*b[1]; - res[1] = a[2]*b[0] - a[0]*b[2]; - res[2] = a[0]*b[1] - a[1]*b[0]; + mjtNum tmp[3] = { + a[1]*b[2] - a[2]*b[1], + a[2]*b[0] - a[0]*b[2], + a[0]*b[1] - a[1]*b[0] + }; + res[0] = tmp[0]; + res[1] = tmp[1]; + res[2] = tmp[2]; }