public extern static void dRFromEulerAngles( out dMatrix3 R, dReal phi, dReal theta, dReal psi );
public extern static void dRSetIdentity( out dMatrix3 R );
public extern static void dRFromAxisAndAngle( out dMatrix3 R, dReal ax, dReal ay, dReal az, dReal angle );
public extern static int dBoxTouchesBox( dVector3 _p1, dMatrix3 R1, dVector3 side1, dVector3 _p2, dMatrix3 R2, dVector3 side2 );
public static extern int dBoxBox( dVector3 p1, dMatrix3 R1, dVector3 side1, dVector3 p2, dMatrix3 R2, dVector3 side2, ref dVector3 normal, ref dReal depth, ref int return_code, int maxc, ref dContactGeom[] contact, int skip );
public extern static void dQtoR( ref dQuaternion q, out dMatrix3 R );
/// <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()); }
public extern static void dMassRotate( ref dMass mass, ref dMatrix3 R );
public extern static void dGeomSetRotation( dGeomID geom, ref dMatrix3 R );
public static extern void dBodyCopyRotation(dBodyID body, out dMatrix3 R);
public extern static void dBodySetRotation( dBodyID body, ref dMatrix3 R );
public static extern void dGeomCopyRotation(dGeomID geom, out dMatrix3 R);
public static extern void dGeomCopyOffsetRotation(dGeomID geom, ref dMatrix3 R);
/// <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()); }
public extern static void dRFrom2Axes( out dMatrix3 R, dReal ax, dReal ay, dReal az, dReal bx, dReal by, dReal bz );
public extern static void dGeomSetOffsetWorldRotation( dGeomID geom, dMatrix3 R );
/// <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> /// /// </summary> /// <param name="_mass"></param> /// <param name="_c"></param> /// <param name="_I"></param> public dMass( dReal _mass, dVector3 _c, dMatrix3 _I ) { mass = _mass; c = _c; I = _I; }
public extern static void dRtoQ( ref dMatrix3 R, out dQuaternion q );
/// <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()); }