public extern static void dQFromAxisAndAngle( out dQuaternion q, dReal ax, dReal ay, dReal az, dReal angle );
/// <summary> /// /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="z"></param> /// <param name="w"></param> public dVector4( dReal x, dReal y, dReal z, dReal w ) { X = x; Y = y; Z = z; W = w; }
public extern static void dRFromEulerAngles( out dMatrix3 R, dReal phi, dReal theta, dReal psi );
public extern static void dRFromZAxis( dReal[] R, dReal ax, dReal ay, dReal 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 dGeomTriMeshGetPoint( dGeomID g, int Index, dReal u, dReal v, ref dVector3 Out );
public extern static dReal dGeomBoxPointDepth( dGeomID box, dReal x, dReal y, dReal z );
public extern static void dGeomRaySetLength( dGeomID ray, dReal length );
public extern static dGeomID dCreateBox( dSpaceID space, dReal lx, dReal ly, dReal lz );
public extern static void dGeomBoxSetLengths( dGeomID box, dReal lx, dReal ly, dReal lz );
public extern static dReal dGeomSpherePointDepth( dGeomID sphere, dReal x, dReal y, dReal z );
public extern static void dGeomSphereSetRadius( dGeomID sphere, dReal radius );
public extern static dGeomID dCreateSphere( dSpaceID space, dReal radius );
public extern static void dGeomSetOffsetWorldPosition( dGeomID geom, dReal x, dReal y, dReal z );
public extern static dGeomID dCreatePlane( dSpaceID space, dReal a, dReal b, dReal c, dReal d );
public extern static dGeomID dCreateRay( dSpaceID space, dReal length );
public extern static void dGeomPlaneSetParams( dGeomID plane, dReal a, dReal b, dReal c, dReal d );
public extern static void dGeomRaySet( dGeomID ray, dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz );
public extern static dReal dGeomPlanePointDepth( dGeomID plane, dReal x, dReal y, dReal z );
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 dGeomID dCreateCapsule( dSpaceID space, dReal radius, dReal length );
public extern static void dRFromAxisAndAngle( out dMatrix3 R, dReal ax, dReal ay, dReal az, dReal angle );
public extern static void dGeomCapsuleGetParams( dGeomID capsule, ref dReal radius, ref dReal length );
public extern static void dRFrom2Axes( out dMatrix3 R, dReal ax, dReal ay, dReal az, dReal bx, dReal by, dReal bz );
public extern static dReal dGeomCapsulePointDepth( dGeomID capsule, dReal x, dReal y, dReal z );
/// <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 ); }
public extern static dGeomID dCreateCylinder( dSpaceID space, dReal radius, dReal length );
/// <summary> /// /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="z"></param> public dVector3( dReal x, dReal y, dReal z ) { X = x; Y = y; Z = z; SIMD_PADDING = (dReal)0; }
public extern static void dGeomCylinderGetParams( dGeomID cylinder, ref dReal radius, ref dReal length );
/// <summary> /// Indexer to support use of array syntax as found in ODE examples /// X = 0, Y = 1, Z = 2, W = 3 /// </summary> public dReal this[ int index ] { get { if( index < 0 || index > 3 ) { throw new ArgumentOutOfRangeException( "Index out of range" ); } dReal retVal = 0; switch( index ) { case 0: retVal = X; break; case 1: retVal = Y; break; case 2: retVal = Z; break; case 3: retVal = W; break; } return retVal; } set { if( index < 0 || index > 3 ) { throw new ArgumentOutOfRangeException( "Index out of range" ); } switch( index ) { case 0: X = value; break; case 1: Y = value; break; case 2: Z = value; break; case 3: W = value; break; } } }
public static extern void DrawCapsule(ref d.Vector3 pos, ref d.Matrix3 R, dReal length, dReal radius);