/// <summary> /// ODE API compatability function due to dMatrix3 marshalling errors /// </summary> /// <param name="R"></param> /// <param name="ax"></param> /// <param name="ay"></param> /// <param name="az"></param> public static void dRFromZAxis( dMatrix3 R, dReal ax, dReal ay, dReal az ) { dRFromZAxis( R.ToArray(), ax, ay, az ); }
/// <summary> /// Given mass parameters for some object, adjust them to represent the object rotated by R relative to the body frame. /// </summary> /// <param name="mass">A dMass</param> /// <param name="R">A dMatrix3</param> public static void dMassRotate(ref dMass mass, dMatrix3 R) { // for compatibility dMassRotate(ref mass, R.ToArray()); }
/// <summary> /// Set the rotation matrix of a placeable geom. /// /// This function is analogous to dBodySetRotation. /// /// If the geom is attached to a body, the body's rotation will also be changed. /// /// Calling this function on a non-placeable geom results in a runtime error in the debug build of ODE. /// </summary> /// <param name="geom">the geom to set</param> /// <param name="R">dMatrix3 containing the new rotation matrix</param> public static void dGeomSetRotation(dGeomID geom, dMatrix3 R) { // for compatibility dGeomSetRotation(geom, R.ToArray()); }
/// <summary> /// Set the rotation of the body. /// /// After setting a group of bodies, the outcome of the simulation is undefined if the new configuration /// is inconsistent with the joints/constraints that are present. /// </summary> /// <remarks> /// For some reason the dMatrix3 does not marshall correctly, so this function /// maintains compatibility with the ODE api by converting the supplied dMatrix3 to /// and array and passing that to ODE. /// </remarks> /// <param name="body">the body to set</param> /// <param name="R">A dMatrix3 containing the new rotation matrix</param> public static void dBodySetRotation(dBodyID body, dMatrix3 R) { dBodySetRotation(body, R.ToArray()); }