1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */
28 module derelict.ode.functions;
29 
30 private {
31     import core.stdc.stdio;
32     import core.stdc.config;
33     import derelict.util.system;
34     import derelict.ode.types;
35 }
36 
37 extern(C) @nogc nothrow {
38     // common.h
39     alias da_dGetConfiguration = char* function();
40     alias da_dCheckConfiguration = int function(const(char)*);
41 
42     // collision.h
43     alias da_dGeomDestroy = void function(dGeomID);
44     alias da_dGeomSetData = void function(dGeomID,void*);
45     alias da_dGeomGetData = void* function(dGeomID);
46     alias da_dGeomSetBody = void function(dGeomID,dBodyID);
47     alias da_dGeomGetBody = dBodyID function(dGeomID);
48     alias da_dGeomSetPosition = void function(dGeomID,dReal,dReal,dReal);
49     alias da_dGeomSetRotation = void function(dGeomID,ref const(dMatrix3));
50     alias da_dGeomSetQuaternion = void function(dGeomID,ref const(dQuaternion));
51     alias da_dGeomGetPosition = dReal* function(dGeomID);
52     alias da_dGeomCopyPosition = void function(dGeomID,ref dVector3);
53     alias da_dGeomGetRotation = dReal* function(dGeomID);
54     alias da_dGeomCopyRotation = void function(dGeomID,ref dMatrix3);
55     alias da_dGeomGetQuaternion = void function(dGeomID,ref dQuaternion);
56     alias da_dGeomGetAABB = void function(dGeomID,dReal*);
57     alias da_dGeomIsSpace = int function(dGeomID);
58     alias da_dGeomGetSpace = dSpaceID function(dGeomID);
59     alias da_dGeomGetClass = int function(dGeomID);
60     alias da_dGeomSetCategoryBits = void function(dGeomID,c_ulong);
61     alias da_dGeomSetCollideBits = void function(dGeomID,c_ulong);
62     alias da_dGeomGetCategoryBits = c_ulong function(dGeomID);
63     alias da_dGeomGetCollideBits = c_ulong function(dGeomID);
64     alias da_dGeomEnable = void function(dGeomID);
65     alias da_dGeomDisable = void function(dGeomID);
66     alias da_dGeomIsEnabled = int function(dGeomID);
67     alias da_dGeomLowLevelControl = int function(dGeomID, int, int, void*, int*);
68     alias da_dGeomGetRelPointPos = void function(dGeomID, dReal, dReal, dReal, ref dVector3);
69     alias da_dGeomGetPosRelPoint = void function(dGeomID, dReal, dReal, dReal, ref dVector3);
70     alias da_dGeomVectorToWorld = void function(dGeomID, dReal, dReal, dReal, ref dVector3);
71     alias da_dGeomVectorFromWorld = void function(dGeomID, dReal, dReal, dReal, ref dVector3);
72     alias da_dGeomSetOffsetPosition = void function(dGeomID,dReal,dReal,dReal);
73     alias da_dGeomSetOffsetRotation = void function(dGeomID,ref const(dMatrix3));
74     alias da_dGeomSetOffsetQuaternion = void function(dGeomID,ref const(dQuaternion));
75     alias da_dGeomSetOffsetWorldPosition = void function(dGeomID,dReal,dReal,dReal);
76     alias da_dGeomSetOffsetWorldRotation = void function(dGeomID,ref const(dMatrix3));
77     alias da_dGeomSetOffsetWorldQuaternion = void function(dGeomID,ref const(dQuaternion));
78     alias da_dGeomClearOffset = void function(dGeomID);
79     alias da_dGeomIsOffset = int function(dGeomID);
80     alias da_dGeomGetOffsetPosition = dReal* function(dGeomID);
81     alias da_dGeomCopyOffsetPosition = void function(dGeomID,ref dVector3);
82     alias da_dGeomGetOffsetRotation = dReal* function(dGeomID);
83     alias da_dGeomGetOffsetQuaternion = void function(dGeomID,ref dQuaternion);
84     alias da_dCollide = int function(dGeomID,dGeomID,int,dContactGeom*,int);
85     alias da_dSpaceCollide = void function(dSpaceID,void*,dNearCallback);
86     alias da_dSpaceCollide2 = void function(dGeomID,dGeomID,void*,dNearCallback);
87     alias da_dCreateSphere = dGeomID function(dSpaceID,dReal);
88     alias da_dGeomSphereSetRadius = void function(dGeomID,dReal);
89     alias da_dGeomSphereGetRadius = dReal function(dGeomID);
90     alias da_dGeomSpherePointDepth = dReal function(dGeomID,dReal,dReal,dReal);
91     alias da_dCreateConvex = dGeomID function(dSpaceID,const(dReal)*,uint,const(dReal)*,uint,uint*);
92     alias da_dGeomSetConvex = void function(dGeomID,const(dReal)*,uint,const(dReal)*,uint,uint*);
93     alias da_dCreateBox = dGeomID function(dSpaceID,dReal,dReal,dReal);
94     alias da_dGeomBoxSetLengths = void function(dGeomID,dReal,dReal,dReal);
95     alias da_dGeomBoxGetLengths = void function(dGeomID,ref dVector3);
96     alias da_dGeomBoxPointDepth = dReal function(dGeomID,dReal,dReal,dReal);
97     alias da_dCreatePlane = dGeomID function(dSpaceID,dReal,dReal,dReal,dReal);
98     alias da_dGeomPlaneSetParams = void function(dGeomID,dReal,dReal,dReal,dReal);
99     alias da_dGeomPlaneGetParams = void function(dGeomID,ref dVector4);
100     alias da_dGeomPlanePointDepth = dReal function(dGeomID,dReal,dReal,dReal);
101     alias da_dCreateCapsule = dGeomID function(dSpaceID,dReal,dReal);
102     alias da_dGeomCapsuleSetParams = void function(dGeomID,dReal,dReal);
103     alias da_dGeomCapsuleGetParams = void function(dGeomID,dReal*,dReal*);
104     alias da_dGeomCapsulePointDepth = dReal function(dGeomID,dReal,dReal,dReal);
105     alias da_dCreateCylinder = dGeomID function(dSpaceID,dReal,dReal);
106     alias da_dGeomCylinderSetParams = void function(dGeomID,dReal,dReal);
107     alias da_dGeomCylinderGetParams = void function(dGeomID,dReal*,dReal*);
108     alias da_dCreateRay = dGeomID function(dSpaceID,dReal);
109     alias da_dGeomRaySetLength = void function(dGeomID,dReal);
110     alias da_dGeomRayGetLength = dReal function(dGeomID);
111     alias da_dGeomRaySet = void function(dGeomID,dReal,dReal,dReal,dReal,dReal,dReal);
112     alias da_dGeomRayGet = void function(dGeomID,ref dVector3,ref dVector3);
113     alias da_dGeomRaySetFirstContact = void function(dGeomID,int);
114     alias da_dGeomRayGetFirstContact = int function(dGeomID);
115     alias da_dGeomRaySetBackfaceCull = void function(dGeomID,int);
116     alias da_dGeomRayGetBackfaceCull = int function(dGeomID);
117     alias da_dGeomRaySetClosestHit = void function(dGeomID,int);
118     alias da_dGeomRayGetClosestHit = int function(dGeomID);
119     alias da_dCreateGeomTransform = dGeomID function(dSpaceID);
120     alias da_dGeomTransformSetGeom = void function(dGeomID,dGeomID);
121     alias da_dGeomTransformGetGeom = dGeomID function(dGeomID);
122     alias da_dGeomTransformSetCleanup = void function(dGeomID,int);
123     alias da_dGeomTransformGetCleanup = int function(dGeomID);
124     alias da_dGeomTransformSetInfo = void function(dGeomID,int);
125     alias da_dGeomTransformGetInfo = int function(dGeomID);
126     alias da_dCreateHeightfield = dGeomID function(dSpaceID,dHeightfieldDataID,int);
127     alias da_dGeomHeightfieldDataCreate = dHeightfieldDataID function();
128     alias da_dGeomHeightfieldDataDestroy = void function(dHeightfieldDataID);
129     alias da_dGeomHeightfieldDataBuildCallback = void function(dHeightfieldDataID,void*,dHeightfieldGetHeight,dReal,dReal,int,int,dReal,dReal,dReal,int);
130     alias da_dGeomHeightfieldDataBuildByte = void function(dHeightfieldDataID,const(ubyte)*,int,dReal,dReal,int,int,dReal,dReal,dReal,int);
131     alias da_dGeomHeightfieldDataBuildShort = void function(dHeightfieldDataID,const(short)*,int,dReal,dReal,int,int,dReal,dReal,dReal,int);
132     alias da_dGeomHeightfieldDataBuildSingle = void function(dHeightfieldDataID,const(float)*,int,dReal,dReal,int,int,dReal,dReal,dReal,int);
133     alias da_dGeomHeightfieldDataBuildDouble = void function(dHeightfieldDataID,const(double)*,int,dReal,dReal,int,int,dReal,dReal,dReal,int);
134     alias da_dGeomHeightfieldDataSetBounds = void function(dHeightfieldDataID,dReal,dReal);
135     alias da_dGeomHeightfieldSetHeightfieldData = void function(dGeomID,dHeightfieldDataID);
136     alias da_dGeomHeightfieldGetHeightfieldData = dHeightfieldDataID function(dGeomID);
137     alias da_dClosestLineSegmentPoints = void function(ref const(dVector3),ref const(dVector3),ref const(dVector3),ref const(dVector3),ref dVector3,ref dVector3);
138     alias da_dBoxTouchesBox = int function(ref const(dVector3),ref const(dMatrix3),ref const(dVector3),ref const(dVector3),ref const(dMatrix3),ref const(dVector3));
139     alias da_dBoxBox = int function(ref const(dVector3),ref const(dMatrix3),ref const(dVector3),ref const(dVector3),ref const(dMatrix3),ref const(dVector3),ref dVector3,dReal*,int*,int,dContactGeom*,int);
140     //alias da_dInfiniteAABB = void function(dGeomID,ref dReal[6]);
141     alias da_dCreateGeomClass = int function(const(dGeomClass)*);
142     alias da_dGeomGetClassData = void* function(dGeomID);
143     alias da_dCreateGeom = dGeomID function(int);
144     alias da_dSetColliderOverride = void function(int,int,dColliderFn);
145 
146     // collision_space.h
147     alias da_dSimpleSpaceCreate = dSpaceID function(dSpaceID);
148     alias da_dHashSpaceCreate = dSpaceID function(dSpaceID);
149     alias da_dQuadTreeSpaceCreate = dSpaceID function(dSpaceID,ref const(dVector3),ref const(dVector3),int);
150     alias da_dSweepAndPruneSpaceCreate = dSpaceID function(dSpaceID,int);
151     alias da_dSpaceDestroy = void function(dSpaceID);
152     alias da_dHashSpaceSetLevels = void function(dSpaceID,int,int);
153     alias da_dHashSpaceGetLevels = void function(dSpaceID,int*,int*);
154     alias da_dSpaceSetCleanup = void function(dSpaceID,int);
155     alias da_dSpaceGetCleanup = int function(dSpaceID);
156     alias da_dSpaceSetSublevel = void function(dSpaceID,int);
157     alias da_dSpaceGetSublevel = int function(dSpaceID);
158     alias da_dSpaceSetManualCleanup = void function(dSpaceID, int);
159     alias da_dSpaceGetManualCleanup = int function(dSpaceID);
160     alias da_dSpaceAdd = void function(dSpaceID,dGeomID);
161     alias da_dSpaceRemove = void function(dSpaceID,dGeomID);
162     alias da_dSpaceQuery = int function(dSpaceID,dGeomID);
163     alias da_dSpaceClean = void function(dSpaceID);
164     alias da_dSpaceGetNumGeoms = int function(dSpaceID);
165     alias da_dSpaceGetGeom = dGeomID function(dSpaceID,int);
166     alias da_dSpaceGetClass = int function(dSpaceID);
167 
168     // collision_trimash.h
169     alias da_dGeomTriMeshDataCreate = dTriMeshDataID function();
170     alias da_dGeomTriMeshDataDestroy = void function(dTriMeshDataID);
171     alias da_dGeomTriMeshDataSet = void function(dTriMeshDataID,int,void*);
172     alias da_dGeomTriMeshDataGet = void* function(dTriMeshDataID,int);
173     alias da_dGeomTriMeshDataGet2 = void* function(dTriMeshDataID,int,size_t*);
174     alias da_dGeomTriMeshSetLastTransform = void function(dGeomID,ref dMatrix4);
175     alias da_dGeomTriMeshGetLastTransform = const(dReal)* function(dGeomID);
176     alias da_dGeomTriMeshDataBuildSingle = void function(dTriMeshDataID,const(void)*,int,int,const(void)*,int,int);
177     alias da_dGeomTriMeshDataBuildSingle1 = void function(dTriMeshDataID,const(void)*,int,int,const(void)*,int,int,const(void)*);
178     alias da_dGeomTriMeshDataBuildDouble = void function(dTriMeshDataID,const(void)*,int,int,const(void)*,int,int);
179     alias da_dGeomTriMeshDataBuildDouble1 = void function(dTriMeshDataID,const(void)*,int,int,const(void)*,int,int,const(void)*);
180     alias da_dGeomTriMeshDataBuildSimple = void function(dTriMeshDataID,const(dReal)*,int,const(dTriIndex)*,int);
181     alias da_dGeomTriMeshDataBuildSimple1 = void function(dTriMeshDataID,const(dReal)*,int,const(dTriIndex)*,int,const(int)*);
182     alias da_dGeomTriMeshDataPreprocess = void function(dTriMeshDataID);
183     alias da_dGeomTriMeshSetCallback = void function(dGeomID,dTriCallback);
184     alias da_dGeomTriMeshGetCallback = dTriCallback function(dGeomID);
185     alias da_dGeomTriMeshSetArrayCallback = void function(dGeomID,dTriArrayCallback);
186     alias da_dGeomTriMeshGetArrayCallback = dTriArrayCallback function(dGeomID);
187     alias da_dGeomTriMeshSetRayCallback = void function(dGeomID,dTriRayCallback);
188     alias da_dGeomTriMeshGetRayCallback = dTriRayCallback function(dGeomID);
189     alias da_dGeomTriMeshSetTriMergeCallback = void function(dGeomID,dTriTriMergeCallback);
190     alias da_dGeomTriMeshGetTriMergeCallback = dTriTriMergeCallback function(dGeomID);
191     alias da_dCreateTriMesh = dGeomID function(dSpaceID,dTriMeshDataID,dTriCallback,dTriArrayCallback,dTriRayCallback);
192     alias da_dGeomTriMeshSetData = void function(dGeomID,dTriMeshDataID);
193     alias da_dGeomTriMeshGetData = dTriMeshDataID function(dGeomID);
194     alias da_dGeomTriMeshEnableTC = void function(dGeomID,int,int);
195     alias da_dGeomTriMeshIsTCEnabled = int function(dGeomID,int);
196     alias da_dGeomTriMeshClearTCCache = void function(dGeomID);
197     alias da_dGeomTriMeshGetTriMeshDataID = dTriMeshDataID function(dGeomID);
198     alias da_dGeomTriMeshGetTriangle = void function(dGeomID,int,ref dVector3*,ref dVector3*,ref dVector3*);
199     alias da_dGeomTriMeshGetPoint = void function(dGeomID,int,dReal,dReal,ref dVector3);
200     alias da_dGeomTriMeshGetTriangleCount = int function(dGeomID);
201     alias da_dGeomTriMeshDataUpdate = void function(dTriMeshDataID);
202 
203     // error.h
204     alias da_dSetErrorHandler = void function(dMessageFunction);
205     alias da_dSetDebugHandler = void function(dMessageFunction);
206     alias da_dSetMessageHandler = void function(dMessageFunction);
207     alias da_dGetErrorHandler = dMessageFunction function();
208     alias da_dGetDebugHandler = dMessageFunction function();
209     alias da_dGetMessageHandler = dMessageFunction function();
210     alias da_dError = void function(int,const(char)*,...);
211     alias da_dDebug = void function(int,const(char)*,...);
212     alias da_dMessage = void function(int,const(char)*,...);
213 
214     // export-dif.h
215     alias da_dWorldExportDIF = void function(dWorldID, FILE*, const(char)*);
216 
217     // mass.h
218     alias da_dMassCheck = int function(const(dMass)*);
219     alias da_dMassSetZero = void function(dMass*);
220     alias da_dMassSetParameters = void function(dMass*,dReal,dReal,dReal,dReal,dReal,dReal,dReal,dReal,dReal,dReal);
221     alias da_dMassSetSphere = void function(dMass*,dReal,dReal);
222     alias da_dMassSetSphereTotal = void function(dMass*,dReal,dReal);
223     alias da_dMassSetCapsule = void function(dMass*,dReal,int,dReal,dReal);
224     alias da_dMassSetCapsuleTotal = void function(dMass*,dReal,int,dReal,dReal);
225     alias da_dMassSetCylinder = void function(dMass*,dReal,int,dReal,dReal);
226     alias da_dMassSetCylinderTotal = void function(dMass*,dReal,int,dReal,dReal);
227     alias da_dMassSetBox = void function(dMass*,dReal,dReal,dReal,dReal);
228     alias da_dMassSetBoxTotal = void function(dMass*,dReal,dReal,dReal,dReal);
229     alias da_dMassSetTrimesh = void function(dMass*,dReal,dGeomID);
230     alias da_dMassSetTrimeshTotal = void function(dMass*,dReal,dGeomID);
231     alias da_dMassAdjust = void function(dMass*,dReal);
232     alias da_dMassTranslate = void function(dMass*,dReal,dReal,dReal);
233     alias da_dMassRotate = void function(dMass*,ref const(dMatrix3));
234     alias da_dMassAdd = void function(dMass*,const(dMass)*);
235 
236     // matrix.h
237     alias da_dSetZero = void function(dReal*,int);
238     alias da_dSetValue = void function(dReal*,int,dReal);
239     alias da_dDot = dReal function(const(dReal)*,const(dReal)*,int);
240     alias da_dMultiply0 = void function(dReal*,const(dReal)*,const(dReal)*,int,int,int);
241     alias da_dMultiply1 = void function(dReal*,const(dReal)*,const(dReal)*,int,int,int);
242     alias da_dMultiply2 = void function(dReal*,const(dReal)*,const(dReal)*,int,int,int);
243     alias da_dFactorCholesky = int function(dReal*,int);
244     alias da_dSolveCholesky = void function(const(dReal)*,dReal*,int);
245     alias da_dInvertPDMatrix = int function(const(dReal)*,dReal*,int);
246     alias da_dIsPositiveDefinite = int function(const(dReal)*,int);
247     alias da_dFactorLDLT = void function(dReal*,dReal*,int,int);
248     alias da_dSolveL1 = void function(const(dReal)*,dReal*,int,int);
249     alias da_dSolveL1T = void function(const(dReal)*,dReal*,int,int);
250     alias da_dVectorScale = void function(dReal*,const(dReal)*,int);
251     alias da_dSolveLDLT = void function(const(dReal)*,const(dReal)*,dReal*,int,int);
252     alias da_dLDLTAddTL = void function(dReal*,dReal*,const(dReal)*,int,int);
253     alias da_dLDLTRemove = void function(dReal**,const(int)*,dReal*,dReal*,int,int,int,int);
254     alias da_dRemoveRowCol = void function(dReal*,int,int,int);
255 
256     // memory.h
257     alias da_dSetAllocHandler = void function(dAllocFunction);
258     alias da_dSetReallocHandler = void function(dReallocFunction);
259     alias da_dSetFreeHandler = void function(dFreeFunction);
260     alias da_dGetAllocHandler = dAllocFunction function();
261     alias da_dGetReallocHandler = dReallocFunction function();
262     alias da_dGetFreeHandler = dFreeFunction function();
263     alias da_dAlloc = void* function(size_t);
264     alias da_dRealloc = void* function(void*,size_t,size_t);
265     alias da_dFree = void function(void*,size_t);
266 
267     // misch.h
268     alias da_dTestRand = int function();
269     alias da_dRand = c_ulong function();
270     alias da_dRandGetSeed = c_ulong function();
271     alias da_dRandSetSeed = void function(c_ulong);
272     alias da_dRandInt = int function(int);
273     alias da_dRandReal = dReal function();
274     //alias da_dPrintMatrix = void function(const(dReal)*,int,int,const(char)*,FILE*);
275     alias da_dMakeRandomVector = void function(dReal,int,dReal);
276     alias da_dMakeRandomMatrix = void function(dReal*,int,int,dReal);
277     alias da_dClearUpperTriangle = void function(dReal*,int);
278     alias da_dMaxDifference = dReal function(const(dReal)*,const(dReal)*,int,int);
279     alias da_dMaxDifferenceLowerTriangle = dReal function(const(dReal)*,const(dReal)*,int);
280 
281     // objects.h
282     alias da_dWorldCreate = dWorldID function();
283     alias da_dWorldDestroy = void function(dWorldID);
284     alias da_dWorldSetData = void function(dWorldID,void*);
285     alias da_dWorldGetData = void* function(dWorldID);
286     alias da_dWorldSetGravity = void function(dWorldID,dReal,dReal,dReal);
287     alias da_dWorldGetGravity = void function(dWorldID,ref dVector3);
288     alias da_dWorldSetERP = void function(dWorldID,dReal);
289     alias da_dWorldGetERP = dReal function(dWorldID);
290     alias da_dWorldSetCFM = void function(dWorldID,dReal);
291     alias da_dWorldGetCFM = dReal function(dWorldID);
292     alias da_dWorldSetStepIslandsProcessingMaxThreadCount = void function(dWorldID,uint);
293     alias da_dWorldGetStepIslandsProcessingMaxThreadCount = uint function(dWorldID);
294     alias da_dWorldUseSharedWorkingMemory = int function(dWorldID, dWorldID);
295     alias da_dWorldCleanupWorkingMemory = void function(dWorldID);
296     alias da_dWorldSetStepMemoryReservationPolicy = int function(dWorldID, const(dWorldStepReserveInfo)*);
297     alias da_dWorldSetStepMemoryManager = int function(dWorldID, const(dWorldStepMemoryFunctionsInfo)*);
298     alias da_dWorldSetStepThreadingImplementation = void function(dWorldID,const(dThreadingFunctionsInfo)*,dThreadingImplementationID);
299     alias da_dWorldStep = int function(dWorldID,dReal);
300     alias da_dWorldImpulseToForce = void function(dWorldID,dReal,dReal,dReal,dReal,ref dVector3);
301     alias da_dWorldQuickStep = int function(dWorldID,dReal);
302     alias da_dWorldSetQuickStepNumIterations = void function(dWorldID,int);
303     alias da_dWorldGetQuickStepNumIterations = int function(dWorldID);
304     alias da_dWorldSetQuickStepW = void function(dWorldID,dReal);
305     alias da_dWorldGetQuickStepW = dReal function(dWorldID);
306     alias da_dWorldSetContactMaxCorrectingVel = void function(dWorldID,dReal);
307     alias da_dWorldGetContactMaxCorrectingVel = dReal function(dWorldID);
308     alias da_dWorldSetContactSurfaceLayer = void function(dWorldID,dReal);
309     alias da_dWorldGetContactSurfaceLayer = dReal function(dWorldID);
310     alias da_dWorldGetAutoDisableLinearThreshold = dReal function(dWorldID);
311     alias da_dWorldSetAutoDisableLinearThreshold = void function(dWorldID,dReal);
312     alias da_dWorldGetAutoDisableAngularThreshold = dReal function(dWorldID);
313     alias da_dWorldSetAutoDisableAngularThreshold = void function(dWorldID,dReal);
314     alias da_dWorldGetAutoDisableAverageSamplesCount = int function(dWorldID);
315     alias da_dWorldSetAutoDisableAverageSamplesCount = void function(dWorldID,uint);
316     alias da_dWorldGetAutoDisableSteps = int function(dWorldID);
317     alias da_dWorldSetAutoDisableSteps = void function(dWorldID,int);
318     alias da_dWorldGetAutoDisableTime = dReal function(dWorldID);
319     alias da_dWorldSetAutoDisableTime = void function(dWorldID,dReal);
320     alias da_dWorldGetAutoDisableFlag = int function(dWorldID);
321     alias da_dWorldSetAutoDisableFlag = void function(dWorldID,int);
322     alias da_dWorldGetLinearDampingThreshold = dReal function(dWorldID);
323     alias da_dWorldSetLinearDampingThreshold = void function(dWorldID,dReal);
324     alias da_dWorldGetAngularDampingThreshold = dReal function(dWorldID);
325     alias da_dWorldSetAngularDampingThreshold = void function(dWorldID,dReal);
326     alias da_dWorldGetLinearDamping = dReal function(dWorldID);
327     alias da_dWorldSetLinearDamping = void function(dWorldID,dReal);
328     alias da_dWorldGetAngularDamping = dReal function(dWorldID);
329     alias da_dWorldSetAngularDamping = void function(dWorldID,dReal);
330     alias da_dWorldSetDamping = void function(dWorldID,dReal,dReal);
331     alias da_dWorldGetMaxAngularSpeed = dReal function(dWorldID);
332     alias da_dWorldSetMaxAngularSpeed = void function(dWorldID,dReal);
333     alias da_dBodyGetAutoDisableLinearThreshold = dReal function(dBodyID);
334     alias da_dBodySetAutoDisableLinearThreshold = void function(dBodyID,dReal);
335     alias da_dBodyGetAutoDisableAngularThreshold = dReal function(dBodyID);
336     alias da_dBodySetAutoDisableAngularThreshold = void function(dBodyID,dReal);
337     alias da_dBodyGetAutoDisableAverageSamplesCount = int function(dBodyID);
338     alias da_dBodySetAutoDisableAverageSamplesCount = void function(dBodyID,uint);
339     alias da_dBodyGetAutoDisableSteps = int function(dBodyID);
340     alias da_dBodySetAutoDisableSteps = void function(dBodyID,int);
341     alias da_dBodyGetAutoDisableTime = dReal function(dBodyID);
342     alias da_dBodySetAutoDisableTime = void function(dBodyID,dReal);
343     alias da_dBodyGetAutoDisableFlag = int function(dBodyID);
344     alias da_dBodySetAutoDisableFlag = void function(dBodyID,int);
345     alias da_dBodySetAutoDisableDefaults = void function(dBodyID);
346     alias da_dBodyGetWorld = dWorldID function(dBodyID);
347     alias da_dBodyCreate = dBodyID function(dWorldID);
348     alias da_dBodyDestroy = void function(dBodyID);
349     alias da_dBodySetData = void function(dBodyID,void*);
350     alias da_dBodyGetData = void* function(dBodyID);
351     alias da_dBodySetPosition = void function(dBodyID,dReal,dReal,dReal);
352     alias da_dBodySetRotation = void function(dBodyID,ref const(dMatrix3));
353     alias da_dBodySetQuaternion = void function(dBodyID,ref const(dQuaternion));
354     alias da_dBodySetLinearVel = void function(dBodyID,dReal,dReal,dReal);
355     alias da_dBodySetAngularVel = void function(dBodyID,dReal,dReal,dReal);
356     alias da_dBodyGetPosition = dReal* function(dBodyID);
357     alias da_dBodyCopyPosition = void function(dBodyID,ref dVector3);
358     alias da_dBodyGetRotation = dReal* function(dBodyID);
359     alias da_dBodyCopyRotation = void function(dBodyID,ref dMatrix3);
360     alias da_dBodyGetQuaternion = dReal* function(dBodyID);
361     alias da_dBodyCopyQuaternion = void function(dBodyID,ref dQuaternion);
362     alias da_dBodyGetLinearVel = dReal* function(dBodyID);
363     alias da_dBodyGetAngularVel = dReal* function(dBodyID);
364     alias da_dBodySetMass = void function(dBodyID,const(dMass)*);
365     alias da_dBodyGetMass = void function(dBodyID,dMass*);
366     alias da_dBodyAddForce = void function(dBodyID,dReal,dReal,dReal);
367     alias da_dBodyAddTorque = void function(dBodyID,dReal,dReal,dReal);
368     alias da_dBodyAddRelForce = void function(dBodyID,dReal,dReal,dReal);
369     alias da_dBodyAddRelTorque = void function(dBodyID,dReal,dReal,dReal);
370     alias da_dBodyAddForceAtPos = void function(dBodyID,dReal,dReal,dReal,dReal,dReal,dReal);
371     alias da_dBodyAddForceAtRelPos = void function(dBodyID,dReal,dReal,dReal,dReal,dReal,dReal);
372     alias da_dBodyAddRelForceAtPos = void function(dBodyID,dReal,dReal,dReal,dReal,dReal,dReal);
373     alias da_dBodyAddRelForceAtRelPos = void function(dBodyID,dReal,dReal,dReal,dReal,dReal,dReal);
374     alias da_dBodyGetForce = dReal* function(dBodyID);
375     alias da_dBodyGetTorque = dReal* function(dBodyID);
376     alias da_dBodySetForce = void function(dBodyID,dReal,dReal,dReal);
377     alias da_dBodySetTorque = void function(dBodyID,dReal,dReal,dReal);
378     alias da_dBodyGetRelPointPos = void function(dBodyID,dReal,dReal,dReal,ref dVector3);
379     alias da_dBodyGetRelPointVel = void function(dBodyID,dReal,dReal,dReal,ref dVector3);
380     alias da_dBodyGetPointVel = void function(dBodyID,dReal,dReal,dReal,ref dVector3);
381     alias da_dBodyGetPosRelPoint = void function(dBodyID,dReal,dReal,dReal,ref dVector3);
382     alias da_dBodyVectorToWorld = void function(dBodyID,dReal,dReal,dReal,ref dVector3);
383     alias da_dBodyVectorFromWorld = void function(dBodyID,dReal,dReal,dReal,ref dVector3);
384     alias da_dBodySetFiniteRotationMode = void function(dBodyID,int);
385     alias da_dBodySetFiniteRotationAxis = void function(dBodyID,dReal,dReal,dReal);
386     alias da_dBodyGetFiniteRotationMode = int function(dBodyID);
387     alias da_dBodyGetFiniteRotationAxis = void function(dBodyID,ref dVector3);
388     alias da_dBodyGetNumJoints = int function(dBodyID);
389     alias da_dBodyGetJoint = dJointID function(dBodyID,int);
390     alias da_dBodySetDynamic = void function(dBodyID);
391     alias da_dBodySetKinematic = void function(dBodyID);
392     alias da_dBodyIsKinematic = int function(dBodyID);
393     alias da_dBodyEnable = void function(dBodyID);
394     alias da_dBodyDisable = void function(dBodyID);
395     alias da_dBodyIsEnabled = int function(dBodyID);
396     alias da_dBodySetGravityMode = void function(dBodyID,int);
397     alias da_dBodyGetGravityMode = int function(dBodyID);
398     alias da_dBodySetMovedCallback = void function(dBodyID,void function(dBodyID));
399     alias da_dBodyGetFirstGeom = dGeomID function(dBodyID);
400     alias da_dBodyGetNextGeom = dGeomID function(dGeomID);
401     alias da_dBodySetDampingDefaults = void function(dBodyID);
402     alias da_dBodyGetLinearDamping = dReal function(dBodyID);
403     alias da_dBodySetLinearDamping = void function(dBodyID,dReal);
404     alias da_dBodyGetAngularDamping = dReal function(dBodyID);
405     alias da_dBodySetAngularDamping = void function(dBodyID,dReal);
406     alias da_dBodySetDamping = void function(dBodyID,dReal,dReal);
407     alias da_dBodyGetLinearDampingThreshold = dReal function(dBodyID);
408     alias da_dBodySetLinearDampingThreshold = void function(dBodyID,dReal);
409     alias da_dBodyGetAngularDampingThreshold = dReal function(dBodyID);
410     alias da_dBodySetAngularDampingThreshold = void function(dBodyID,dReal);
411     alias da_dBodyGetMaxAngularSpeed = dReal function(dBodyID);
412     alias da_dBodySetMaxAngularSpeed = void function(dBodyID,dReal);
413     alias da_dBodyGetGyroscopicMode = int function(dBodyID);
414     alias da_dBodySetGyroscopicMode = void function(dBodyID,int);
415     alias da_dJointCreateBall = dJointID function(dWorldID,dJointGroupID);
416     alias da_dJointCreateHinge = dJointID function(dWorldID,dJointGroupID);
417     alias da_dJointCreateSlider = dJointID function(dWorldID,dJointGroupID);
418     alias da_dJointCreateContact = dJointID function(dWorldID,dJointGroupID,const(dContact)*);
419     alias da_dJointCreateHinge2 = dJointID function(dWorldID,dJointGroupID);
420     alias da_dJointCreateUniversal = dJointID function(dWorldID,dJointGroupID);
421     alias da_dJointCreatePR = dJointID function(dWorldID,dJointGroupID);
422     alias da_dJointCreatePU = dJointID function(dWorldID,dJointGroupID);
423     alias da_dJointCreatePiston = dJointID function(dWorldID,dJointGroupID);
424     alias da_dJointCreateFixed = dJointID function(dWorldID,dJointGroupID);
425     alias da_dJointCreateNull = dJointID function(dWorldID,dJointGroupID);
426     alias da_dJointCreateAMotor = dJointID function(dWorldID,dJointGroupID);
427     alias da_dJointCreateLMotor = dJointID function(dWorldID,dJointGroupID);
428     alias da_dJointCreatePlane2D = dJointID function(dWorldID,dJointGroupID);
429     alias da_dJointCreateDBall = dJointID function(dWorldID,dJointGroupID);
430     alias da_dJointCreateDHinge = dJointID function(dWorldID,dJointGroupID);
431     alias da_dJointCreateTransmission = dJointID function(dWorldID, dJointGroupID);
432     alias da_dJointDestroy = void function(dJointID);
433     alias da_dJointGroupCreate = dJointGroupID function(int);
434     alias da_dJointGroupDestroy = void function(dJointGroupID);
435     alias da_dJointGroupEmpty = void function(dJointGroupID);
436     alias da_dJointGetNumBodies = int function(dJointID);
437     alias da_dJointAttach = void function(dJointID,dBodyID,dBodyID);
438     alias da_dJointEnable = void function(dJointID);
439     alias da_dJointDisable = void function(dJointID);
440     alias da_dJointIsEnabled = int function(dJointID);
441     alias da_dJointSetData = void function(dJointID,void*);
442     alias da_dJointGetData = void* function(dJointID);
443     alias da_dJointGetType = dJointType function(dJointID);
444     alias da_dJointGetBody = dBodyID function(dJointID,int);
445     alias da_dJointSetFeedback = void function(dJointID,dJointFeedback*);
446     alias da_dJointGetFeedback = dJointFeedback* function(dJointID);
447     alias da_dJointSetBallAnchor = void function(dJointID,dReal,dReal,dReal);
448     alias da_dJointSetBallAnchor2 = void function(dJointID,dReal,dReal,dReal);
449     alias da_dJointSetBallParam = void function(dJointID,int,dReal);
450     alias da_dJointSetHingeAnchor = void function(dJointID,dReal,dReal,dReal);
451     alias da_dJointSetHingeAnchorDelta = void function(dJointID,dReal,dReal,dReal,dReal,dReal,dReal);
452     alias da_dJointSetHingeAxis = void function(dJointID,dReal,dReal,dReal);
453     alias da_dJointSetHingeAxisOffset = void function(dJointID,dReal,dReal,dReal,dReal);
454     alias da_dJointSetHingeParam = void function(dJointID,int,dReal);
455     alias da_dJointAddHingeTorque = void function(dJointID,dReal);
456     alias da_dJointSetSliderAxis = void function(dJointID,dReal,dReal,dReal);
457     alias da_dJointSetSliderAxisDelta = void function(dJointID,dReal,dReal,dReal,dReal,dReal,dReal);
458     alias da_dJointSetSliderParam = void function(dJointID,int,dReal);
459     alias da_dJointAddSliderForce = void function(dJointID,dReal);
460     alias da_dJointSetHinge2Anchor = void function(dJointID,dReal,dReal,dReal);
461     alias da_dJointSetHinge2Axes = void function(dJointID,const(dReal)*,const(dReal)*);
462     alias da_dJointSetHinge2Param = void function(dJointID,int,dReal);
463     alias da_dJointAddHinge2Torques = void function(dJointID,dReal,dReal);
464     alias da_dJointSetUniversalAnchor = void function(dJointID,dReal,dReal,dReal);
465     alias da_dJointSetUniversalAxis1 = void function(dJointID,dReal,dReal,dReal);
466     alias da_dJointSetUniversalAxis1Offset = void function(dJointID,dReal,dReal,dReal,dReal,dReal);
467     alias da_dJointSetUniversalAxis2 = void function(dJointID,dReal,dReal,dReal);
468     alias da_dJointSetUniversalAxis2Offset = void function(dJointID,dReal,dReal,dReal,dReal,dReal);
469     alias da_dJointSetUniversalParam = void function(dJointID,int,dReal);
470     alias da_dJointAddUniversalTorques = void function(dJointID,dReal,dReal);
471     alias da_dJointSetPRAnchor = void function(dJointID,dReal,dReal,dReal);
472     alias da_dJointSetPRAxis1 = void function(dJointID,dReal,dReal,dReal);
473     alias da_dJointSetPRAxis2 = void function(dJointID,dReal,dReal,dReal);
474     alias da_dJointSetPRParam = void function(dJointID,int,dReal);
475     alias da_dJointAddPRTorque = void function(dJointID,dReal);
476     alias da_dJointSetPUAnchor = void function(dJointID,dReal,dReal,dReal);
477     alias da_dJointSetPUAnchorOffset = void function(dJointID,dReal,dReal,dReal,dReal,dReal,dReal);
478     alias da_dJointSetPUAxis1 = void function(dJointID,dReal,dReal,dReal);
479     alias da_dJointSetPUAxis2 = void function(dJointID,dReal,dReal,dReal);
480     alias da_dJointSetPUAxis3 = void function(dJointID,dReal,dReal,dReal);
481     alias da_dJointSetPUAxisP = void function(dJointID,dReal,dReal,dReal);
482     alias da_dJointSetPUParam = void function(dJointID,int,dReal);
483     alias da_dJointSetPistonAnchor = void function(dJointID,dReal,dReal,dReal);
484     alias da_dJointSetPistonAnchorOffset = void function(dJointID,dReal,dReal,dReal,dReal,dReal,dReal);
485     alias da_dJointSetPistonAxis = void function(dJointID,dReal,dReal,dReal);
486     alias da_dJointSetPistonParam = void function(dJointID,int,dReal);
487     alias da_dJointAddPistonForce = void function(dJointID,dReal);
488     alias da_dJointSetFixed = void function(dJointID);
489     alias da_dJointSetFixedParam = void function(dJointID,int,dReal);
490     alias da_dJointSetAMotorNumAxes = void function(dJointID,int);
491     alias da_dJointSetAMotorAxis = void function(dJointID,int,int,dReal,dReal,dReal);
492     alias da_dJointSetAMotorAngle = void function(dJointID,int,dReal);
493     alias da_dJointSetAMotorParam = void function(dJointID,int,dReal);
494     alias da_dJointSetAMotorMode = void function(dJointID,int);
495     alias da_dJointAddAMotorTorques = void function(dJointID,dReal,dReal,dReal);
496     alias da_dJointSetLMotorNumAxes = void function(dJointID,int);
497     alias da_dJointSetLMotorAxis = void function(dJointID,int,int,dReal,dReal,dReal);
498     alias da_dJointSetLMotorParam = void function(dJointID,int,dReal);
499     alias da_dJointSetPlane2DXParam = void function(dJointID,int,dReal);
500     alias da_dJointSetPlane2DYParam = void function(dJointID,int,dReal);
501     alias da_dJointSetPlane2DAngleParam = void function(dJointID,int,dReal);
502     alias da_dJointGetBallAnchor = void function(dJointID,ref dVector3);
503     alias da_dJointGetBallAnchor2 = void function(dJointID,ref dVector3);
504     alias da_dJointGetBallParam = dReal function(dJointID,int);
505     alias da_dJointGetHingeAnchor = void function(dJointID,ref dVector3);
506     alias da_dJointGetHingeAnchor2 = void function(dJointID,ref dVector3);
507     alias da_dJointGetHingeAxis = void function(dJointID,ref dVector3);
508     alias da_dJointGetHingeParam = dReal function(dJointID,int);
509     alias da_dJointGetHingeAngle = dReal function(dJointID);
510     alias da_dJointGetHingeAngleRate = dReal function(dJointID);
511     alias da_dJointGetSliderPosition = dReal function(dJointID);
512     alias da_dJointGetSliderPositionRate = dReal function(dJointID);
513     alias da_dJointGetSliderAxis = void function(dJointID,ref dVector3);
514     alias da_dJointGetSliderParam = dReal function(dJointID,int);
515     alias da_dJointGetHinge2Anchor = void function(dJointID,ref dVector3);
516     alias da_dJointGetHinge2Anchor2 = void function(dJointID,ref dVector3);
517     alias da_dJointGetHinge2Axis1 = void function(dJointID,ref dVector3);
518     alias da_dJointGetHinge2Axis2 = void function(dJointID,ref dVector3);
519     alias da_dJointGetHinge2Param = dReal function(dJointID,int);
520     alias da_dJointGetHinge2Angle1 = dReal function(dJointID);
521     alias da_dJointGetHinge2Angle2 = dReal function(dJointID);
522     alias da_dJointGetHinge2Angle1Rate = dReal function(dJointID);
523     alias da_dJointGetHinge2Angle2Rate = dReal function(dJointID);
524     alias da_dJointGetUniversalAnchor = void function(dJointID,ref dVector3);
525     alias da_dJointGetUniversalAnchor2 = void function(dJointID,ref dVector3);
526     alias da_dJointGetUniversalAxis1 = void function(dJointID,ref dVector3);
527     alias da_dJointGetUniversalAxis2 = void function(dJointID,ref dVector3);
528     alias da_dJointGetUniversalParam = dReal function(dJointID,int);
529     alias da_dJointGetUniversalAngles = void function(dJointID,dReal*,dReal*);
530     alias da_dJointGetUniversalAngle1 = dReal function(dJointID);
531     alias da_dJointGetUniversalAngle2 = dReal function(dJointID);
532     alias da_dJointGetUniversalAngle1Rate = dReal function(dJointID);
533     alias da_dJointGetUniversalAngle2Rate = dReal function(dJointID);
534     alias da_dJointGetPRAnchor = void function(dJointID,ref dVector3);
535     alias da_dJointGetPRPosition = dReal function(dJointID);
536     alias da_dJointGetPRPositionRate = dReal function(dJointID);
537     alias da_dJointGetPRAngle = dReal function(dJointID);
538     alias da_dJointGetPRAngleRate = dReal function(dJointID);
539     alias da_dJointGetPRAxis1 = void function(dJointID,ref dVector3);
540     alias da_dJointGetPRAxis2 = void function(dJointID,ref dVector3);
541     alias da_dJointGetPRParam = dReal function(dJointID,int);
542     alias da_dJointGetPUAnchor = void function(dJointID,ref dVector3);
543     alias da_dJointGetPUPosition = dReal function(dJointID);
544     alias da_dJointGetPUPositionRate = dReal function(dJointID);
545     alias da_dJointGetPUAxis1 = void function(dJointID,ref dVector3);
546     alias da_dJointGetPUAxis2 = void function(dJointID,ref dVector3);
547     alias da_dJointGetPUAxis3 = void function(dJointID,ref dVector3);
548     alias da_dJointGetPUAxisP = void function(dJointID,ref dVector3);
549     alias da_dJointGetPUAngles = void function(dJointID,dReal*,dReal*);
550     alias da_dJointGetPUAngle1 = dReal function(dJointID);
551     alias da_dJointGetPUAngle1Rate = dReal function(dJointID);
552     alias da_dJointGetPUAngle2 = dReal function(dJointID);
553     alias da_dJointGetPUAngle2Rate = dReal function(dJointID);
554     alias da_dJointGetPUParam = dReal function(dJointID,int);
555     alias da_dJointGetPistonPosition = dReal function(dJointID);
556     alias da_dJointGetPistonPositionRate = dReal function(dJointID);
557     alias da_dJointGetPistonAngle = dReal function(dJointID);
558     alias da_dJointGetPistonAngleRate = dReal function(dJointID);
559     alias da_dJointGetPistonAnchor = void function(dJointID,ref dVector3);
560     alias da_dJointGetPistonAnchor2 = void function(dJointID,ref dVector3);
561     alias da_dJointGetPistonAxis = void function(dJointID,ref dVector3);
562     alias da_dJointGetPistonParam = dReal function(dJointID,int);
563     alias da_dJointGetAMotorNumAxes = int function(dJointID);
564     alias da_dJointGetAMotorAxis = void function(dJointID,int,ref dVector3);
565     alias da_dJointGetAMotorAxisRel = int function(dJointID,int);
566     alias da_dJointGetAMotorAngle = dReal function(dJointID,int);
567     alias da_dJointGetAMotorAngleRate = dReal function(dJointID,int);
568     alias da_dJointGetAMotorParam = dReal function(dJointID,int);
569     alias da_dJointGetAMotorMode = int function(dJointID);
570     alias da_dJointGetLMotorNumAxes = int function(dJointID);
571     alias da_dJointGetLMotorAxis = void function(dJointID,int,ref dVector3);
572     alias da_dJointGetLMotorParam = dReal function(dJointID,int);
573     alias da_dJointGetFixedParam = dReal function(dJointID,int);
574     alias da_dJointGetTransmissionContactPoint1 = void function(dJointID,ref dVector3);
575     alias da_dJointGetTransmissionContactPoint2 = void function(dJointID,ref dVector3);
576     alias da_dJointSetTransmissionAxis1 = void function(dJointID,dReal,dReal,dReal);
577     alias da_dJointGetTransmissionAxis1 = void function(dJointID,ref dVector3);
578     alias da_dJointSetTransmissionAxis2 = void function(dJointID,dReal,dReal,dReal);
579     alias da_dJointGetTransmissionAxis2 = void function(dJointID,ref dVector3);
580     alias da_dJointSetTransmissionAnchor1 = void function(dJointID,dReal,dReal,dReal);
581     alias da_dJointGetTransmissionAnchor1 = void function(dJointID,ref dVector3);
582     alias da_dJointSetTransmissionAnchor2 = void function(dJointID,dReal,dReal,dReal);
583     alias da_dJointGetTransmissionAnchor2 = void function(dJointID,ref dVector3);
584     alias da_dJointSetTransmissionParam = void function(dJointID,int,dReal);
585     alias da_dJointGetTransmissionParam = dReal function(dJointID,int);
586     alias da_dJointSetTransmissionMode = void function(dJointID,int);
587     alias da_dJointGetTransmissionMode = int function(dJointID);
588     alias da_dJointSetTransmissionRatio = void function(dJointID,dReal);
589     alias da_dJointGetTransmissionRatio = dReal function(dJointID);
590     alias da_dJointSetTransmissionAxis = void function(dJointID,dReal,dReal,dReal);
591     alias da_dJointGetTransmissionAxis = void function(dJointID,ref dVector3);
592     alias da_dJointGetTransmissionAngle1 = dReal function(dJointID);
593     alias da_dJointGetTransmissionAngle2 = dReal function(dJointID);
594     alias da_dJointGetTransmissionRadius1 = dReal function(dJointID);
595     alias da_dJointGetTransmissionRadius2 = dReal function(dJointID);
596     alias da_dJointSetTransmissionRadius1 = void function(dJointID,dReal);
597     alias da_dJointSetTransmissionRadius2 = void function(dJointID,dReal);
598     alias da_dJointGetTransmissionBacklash = dReal function(dJointID);
599     alias da_dJointSetTransmissionBacklash = void function(dJointID,dReal);
600     alias da_dJointSetDBallAnchor1 = void function(dJointID,dReal,dReal,dReal);
601     alias da_dJointSetDBallAnchor2 = void function(dJointID,dReal,dReal,dReal);
602     alias da_dJointGetDBallAnchor1 = void function(dJointID,ref dVector3);
603     alias da_dJointGetDBallAnchor2 = void function(dJointID,ref dVector3);
604     alias da_dJointGetDBallDistance = dReal function(dJointID);
605     alias da_dJointSetDBallParam = void function(dJointID,int,dReal);
606     alias da_dJointGetDBallParam = dReal function(dJointID,int);
607     alias da_dJointSetDHingeAxis = void function(dJointID,dReal,dReal,dReal);
608     alias da_dJointGetDHingeAxis = void function(dJointID,ref dVector3);
609     alias da_dJointSetDHingeAnchor1 = void function(dJointID,dReal,dReal,dReal);
610     alias da_dJointSetDHingeAnchor2 = void function(dJointID,dReal,dReal,dReal);
611     alias da_dJointGetDHingeAnchor1 = void function(dJointID,ref dVector3);
612     alias da_dJointGetDHingeAnchor2 = void function(dJointID,ref dVector3);
613     alias da_dJointGetDHingeDistance = dReal function(dJointID);
614     alias da_dJointSetDHingeParam = void function(dJointID,int,dReal);
615     alias da_dJointGetDHingeParam = dReal function(dJointID,int);
616     alias da_dConnectingJoint = dJointID function(dBodyID,dBodyID);
617     alias da_dConnectingJointList = int function(dBodyID,dBodyID,dJointID*);
618     alias da_dAreConnected = int function(dBodyID,dBodyID);
619     alias da_dAreConnectedExcluding = int function(dBodyID,dBodyID,int);
620 
621     // odeinit.h
622     alias da_dInitODE = void function();
623     alias da_dInitODE2 = int function(uint);
624     alias da_dAllocateODEDataForThread = int function(uint);
625     alias da_dCleanupODEAllDataForThread = void function();
626     alias da_dCloseODE = void function();
627 
628     // odemath.h
629     alias da_dSafeNormalize3 = int function(ref dVector3);
630     alias da_dSafeNormalize4 = int function(ref dVector4);
631     alias da_dNormalize3 = void function(ref dVector3);
632     alias da_dNormalize4 = void function(ref dVector4);
633     alias da_dPlaneSpace = void function(ref const(dVector3), ref dVector3, ref dVector3);
634     alias da_dOrthogonalizeR = int function(ref dMatrix3);
635 
636     // rotation.h
637     alias da_dRSetIdentity = void function(ref dMatrix3);
638     alias da_dRFromAxisAndAngle = void function(ref dMatrix3,dReal,dReal,dReal,dReal);
639     alias da_dRFromEulerAngles = void function(ref dMatrix3,dReal,dReal,dReal);
640     alias da_dRFrom2Axes = void function(ref dMatrix3,dReal,dReal,dReal,dReal,dReal,dReal);
641     alias da_dRFromZAxis = void function(ref dMatrix3,dReal,dReal,dReal);
642     alias da_dQSetIdentity = void function(ref dQuaternion);
643     alias da_dQFromAxisAndAngle = void function(ref dQuaternion,dReal,dReal,dReal,dReal);
644     alias da_dQMultiply0 = void function(ref dQuaternion,const(dQuaternion),const(dQuaternion));
645     alias da_dQMultiply1 = void function(ref dQuaternion,const(dQuaternion),const(dQuaternion));
646     alias da_dQMultiply2 = void function(ref dQuaternion,const(dQuaternion),const(dQuaternion));
647     alias da_dQMultiply3 = void function(ref dQuaternion,const(dQuaternion),const(dQuaternion));
648     alias da_dRfromQ = void function(ref dMatrix3,const(dQuaternion));
649     alias da_dQfromR = void function(ref dQuaternion,ref const(dMatrix3));
650     alias da_dDQfromW = void function(ref dReal[4],ref const(dVector3),const(dQuaternion));
651 
652     // timer.h
653     alias da_dStopwatchReset = void function(dStopwatch*);
654     alias da_dStopwatchStart = void function(dStopwatch*);
655     alias da_dStopwatchStop = void function(dStopwatch*);
656     alias da_dStopwatchTime = double function(dStopwatch*);
657     alias da_dTimerStart = void function(const(char)*);
658     alias da_dTimerNow = void function(const(char)*);
659     alias da_dTimerEnd = void function();
660     alias da_dTimerReport = void function(FILE*,int);
661     alias da_dTimerTicksPerSecond = double function();
662     alias da_dTimerResolution = double function();
663 }
664 
665 __gshared {
666     da_dGetConfiguration dGetConfiguration;
667     da_dCheckConfiguration dCheckConfiguration;
668 
669     da_dGeomDestroy dGeomDestroy;
670     da_dGeomSetData dGeomSetData;
671     da_dGeomGetData dGeomGetData;
672     da_dGeomSetBody dGeomSetBody;
673     da_dGeomGetBody dGeomGetBody;
674     da_dGeomSetPosition dGeomSetPosition;
675     da_dGeomSetRotation dGeomSetRotation;
676     da_dGeomSetQuaternion dGeomSetQuaternion;
677     da_dGeomGetPosition dGeomGetPosition;
678     da_dGeomCopyPosition dGeomCopyPosition;
679     da_dGeomGetRotation dGeomGetRotation;
680     da_dGeomCopyRotation dGeomCopyRotation;
681     da_dGeomGetQuaternion dGeomGetQuaternion;
682     da_dGeomGetAABB dGeomGetAABB;
683     da_dGeomIsSpace dGeomIsSpace;
684     da_dGeomGetSpace dGeomGetSpace;
685     da_dGeomGetClass dGeomGetClass;
686     da_dGeomSetCategoryBits dGeomSetCategoryBits;
687     da_dGeomSetCollideBits dGeomSetCollideBits;
688     da_dGeomGetCategoryBits dGeomGetCategoryBits;
689     da_dGeomGetCollideBits dGeomGetCollideBits;
690     da_dGeomEnable dGeomEnable;
691     da_dGeomDisable dGeomDisable;
692     da_dGeomIsEnabled dGeomIsEnabled;
693     da_dGeomLowLevelControl dGeomLowLevelControl;
694     da_dGeomGetRelPointPos dGeomGetRelPointPos;
695     da_dGeomGetPosRelPoint dGeomGetPosRelPoint;
696     da_dGeomVectorToWorld dGeomVectorToWorld;
697     da_dGeomVectorFromWorld dGeomVectorFromWorld;
698     da_dGeomSetOffsetPosition dGeomSetOffsetPosition;
699     da_dGeomSetOffsetRotation dGeomSetOffsetRotation;
700     da_dGeomSetOffsetQuaternion dGeomSetOffsetQuaternion;
701     da_dGeomSetOffsetWorldPosition dGeomSetOffsetWorldPosition;
702     da_dGeomSetOffsetWorldRotation dGeomSetOffsetWorldRotation;
703     da_dGeomSetOffsetWorldQuaternion dGeomSetOffsetWorldQuaternion;
704     da_dGeomClearOffset dGeomClearOffset;
705     da_dGeomIsOffset dGeomIsOffset;
706     da_dGeomGetOffsetPosition dGeomGetOffsetPosition;
707     da_dGeomCopyOffsetPosition dGeomCopyOffsetPosition;
708     da_dGeomGetOffsetRotation dGeomGetOffsetRotation;
709     da_dGeomGetOffsetQuaternion dGeomGetOffsetQuaternion;
710     da_dCollide dCollide;
711     da_dSpaceCollide dSpaceCollide;
712     da_dSpaceCollide2 dSpaceCollide2;
713     da_dCreateSphere dCreateSphere;
714     da_dGeomSphereSetRadius dGeomSphereSetRadius;
715     da_dGeomSphereGetRadius dGeomSphereGetRadius;
716     da_dGeomSpherePointDepth dGeomSpherePointDepth;
717     da_dCreateConvex dCreateConvex;
718     da_dGeomSetConvex dGeomSetConvex;
719     da_dCreateBox dCreateBox;
720     da_dGeomBoxSetLengths dGeomBoxSetLengths;
721     da_dGeomBoxGetLengths dGeomBoxGetLengths;
722     da_dGeomBoxPointDepth dGeomBoxPointDepth;
723     da_dCreatePlane dCreatePlane;
724     da_dGeomPlaneSetParams dGeomPlaneSetParams;
725     da_dGeomPlaneGetParams dGeomPlaneGetParams;
726     da_dGeomPlanePointDepth dGeomPlanePointDepth;
727     da_dCreateCapsule dCreateCapsule;
728     da_dGeomCapsuleSetParams dGeomCapsuleSetParams;
729     da_dGeomCapsuleGetParams dGeomCapsuleGetParams;
730     da_dGeomCapsulePointDepth dGeomCapsulePointDepth;
731     da_dCreateCylinder dCreateCylinder;
732     da_dGeomCylinderSetParams dGeomCylinderSetParams;
733     da_dGeomCylinderGetParams dGeomCylinderGetParams;
734     da_dCreateRay dCreateRay;
735     da_dGeomRaySetLength dGeomRaySetLength;
736     da_dGeomRayGetLength dGeomRayGetLength;
737     da_dGeomRaySet dGeomRaySet;
738     da_dGeomRayGet dGeomRayGet;
739     da_dGeomRaySetFirstContact dGeomRaySetFirstContact;
740     da_dGeomRayGetFirstContact dGeomRayGetFirstContact;
741     da_dGeomRaySetBackfaceCull dGeomRaySetBackfaceCull;
742     da_dGeomRayGetBackfaceCull dGeomRayGetBackfaceCull;
743     da_dGeomRaySetClosestHit dGeomRaySetClosestHit;
744     da_dGeomRayGetClosestHit dGeomRayGetClosestHit;
745     da_dCreateHeightfield dCreateHeightfield;
746     da_dGeomHeightfieldDataCreate dGeomHeightfieldDataCreate;
747     da_dGeomHeightfieldDataDestroy dGeomHeightfieldDataDestroy;
748     da_dGeomHeightfieldDataBuildCallback dGeomHeightfieldDataBuildCallback;
749     da_dGeomHeightfieldDataBuildByte dGeomHeightfieldDataBuildByte;
750     da_dGeomHeightfieldDataBuildShort dGeomHeightfieldDataBuildShort;
751     da_dGeomHeightfieldDataBuildSingle dGeomHeightfieldDataBuildSingle;
752     da_dGeomHeightfieldDataBuildDouble dGeomHeightfieldDataBuildDouble;
753     da_dGeomHeightfieldDataSetBounds dGeomHeightfieldDataSetBounds;
754     da_dGeomHeightfieldSetHeightfieldData dGeomHeightfieldSetHeightfieldData;
755     da_dGeomHeightfieldGetHeightfieldData dGeomHeightfieldGetHeightfieldData;
756     da_dClosestLineSegmentPoints dClosestLineSegmentPoints;
757     da_dBoxTouchesBox dBoxTouchesBox;
758     da_dBoxBox dBoxBox;
759     //da_dInfiniteAABB dInfiniteAABB;
760     da_dCreateGeomClass dCreateGeomClass;
761     da_dGeomGetClassData dGeomGetClassData;
762     da_dCreateGeom dCreateGeom;
763     da_dSetColliderOverride dSetColliderOverride;
764 
765     da_dSimpleSpaceCreate dSimpleSpaceCreate;
766     da_dHashSpaceCreate dHashSpaceCreate;
767     da_dQuadTreeSpaceCreate dQuadTreeSpaceCreate;
768     da_dSweepAndPruneSpaceCreate dSweepAndPruneSpaceCreate;
769     da_dSpaceDestroy dSpaceDestroy;
770     da_dHashSpaceSetLevels dHashSpaceSetLevels;
771     da_dHashSpaceGetLevels dHashSpaceGetLevels;
772     da_dSpaceSetCleanup dSpaceSetCleanup;
773     da_dSpaceGetCleanup dSpaceGetCleanup;
774     da_dSpaceSetSublevel dSpaceSetSublevel;
775     da_dSpaceGetSublevel dSpaceGetSublevel;
776     da_dSpaceSetManualCleanup dSpaceSetManualCleanup;
777     da_dSpaceGetManualCleanup dSpaceGetManualCleanup;
778     da_dSpaceAdd dSpaceAdd;
779     da_dSpaceRemove dSpaceRemove;
780     da_dSpaceQuery dSpaceQuery;
781     da_dSpaceClean dSpaceClean;
782     da_dSpaceGetNumGeoms dSpaceGetNumGeoms;
783     da_dSpaceGetGeom dSpaceGetGeom;
784     da_dSpaceGetClass dSpaceGetClass;
785 
786     da_dGeomTriMeshDataCreate dGeomTriMeshDataCreate;
787     da_dGeomTriMeshDataDestroy dGeomTriMeshDataDestroy;
788     da_dGeomTriMeshDataSet dGeomTriMeshDataSet;
789     da_dGeomTriMeshDataGet dGeomTriMeshDataGet;
790     da_dGeomTriMeshDataGet2 dGeomTriMeshDataGet2;
791     da_dGeomTriMeshSetLastTransform dGeomTriMeshSetLastTransform;
792     da_dGeomTriMeshGetLastTransform dGeomTriMeshGetLastTransform;
793     da_dGeomTriMeshDataBuildSingle dGeomTriMeshDataBuildSingle;
794     da_dGeomTriMeshDataBuildSingle1 dGeomTriMeshDataBuildSingle1;
795     da_dGeomTriMeshDataBuildDouble dGeomTriMeshDataBuildDouble;
796     da_dGeomTriMeshDataBuildDouble1 dGeomTriMeshDataBuildDouble1;
797     da_dGeomTriMeshDataBuildSimple dGeomTriMeshDataBuildSimple;
798     da_dGeomTriMeshDataBuildSimple1 dGeomTriMeshDataBuildSimple1;
799     da_dGeomTriMeshSetCallback dGeomTriMeshSetCallback;
800     da_dGeomTriMeshDataPreprocess dGeomTriMeshDataPreprocess;
801     da_dGeomTriMeshGetCallback dGeomTriMeshGetCallback;
802     da_dGeomTriMeshSetArrayCallback dGeomTriMeshSetArrayCallback;
803     da_dGeomTriMeshGetArrayCallback dGeomTriMeshGetArrayCallback;
804     da_dGeomTriMeshSetRayCallback dGeomTriMeshSetRayCallback;
805     da_dGeomTriMeshGetRayCallback dGeomTriMeshGetRayCallback;
806     da_dGeomTriMeshSetTriMergeCallback dGeomTriMeshSetTriMergeCallback;
807     da_dGeomTriMeshGetTriMergeCallback dGeomTriMeshGetTriMergeCallback;
808     da_dCreateTriMesh dCreateTriMesh;
809     da_dGeomTriMeshSetData dGeomTriMeshSetData;
810     da_dGeomTriMeshGetData dGeomTriMeshGetData;
811     da_dGeomTriMeshEnableTC dGeomTriMeshEnableTC;
812     da_dGeomTriMeshIsTCEnabled dGeomTriMeshIsTCEnabled;
813     da_dGeomTriMeshClearTCCache dGeomTriMeshClearTCCache;
814     da_dGeomTriMeshGetTriMeshDataID dGeomTriMeshGetTriMeshDataID;
815     da_dGeomTriMeshGetTriangle dGeomTriMeshGetTriangle;
816     da_dGeomTriMeshGetPoint dGeomTriMeshGetPoint;
817     da_dGeomTriMeshGetTriangleCount dGeomTriMeshGetTriangleCount;
818     da_dGeomTriMeshDataUpdate dGeomTriMeshDataUpdate;
819     da_dSetErrorHandler dSetErrorHandler;
820     da_dSetDebugHandler dSetDebugHandler;
821     da_dSetMessageHandler dSetMessageHandler;
822     da_dGetErrorHandler dGetErrorHandler;
823     da_dGetDebugHandler dGetDebugHandler;
824     da_dGetMessageHandler dGetMessageHandler;
825     da_dError dError;
826     da_dDebug dDebug;
827     da_dMessage dMessage;
828 
829     da_dWorldExportDIF dWorldExportDIF;
830 
831     da_dMassCheck dMassCheck;
832     da_dMassSetZero dMassSetZero;
833     da_dMassSetParameters dMassSetParameters;
834     da_dMassSetSphere dMassSetSphere;
835     da_dMassSetSphereTotal dMassSetSphereTotal;
836     da_dMassSetCapsule dMassSetCapsule;
837     da_dMassSetCapsuleTotal dMassSetCapsuleTotal;
838     da_dMassSetCylinder dMassSetCylinder;
839     da_dMassSetCylinderTotal dMassSetCylinderTotal;
840     da_dMassSetBox dMassSetBox;
841     da_dMassSetBoxTotal dMassSetBoxTotal;
842     da_dMassSetTrimesh dMassSetTrimesh;
843     da_dMassSetTrimeshTotal dMassSetTrimeshTotal;
844     da_dMassAdjust dMassAdjust;
845     da_dMassTranslate dMassTranslate;
846     da_dMassRotate dMassRotate;
847     da_dMassAdd dMassAdd;
848 
849     da_dSetZero dSetZero;
850     da_dSetValue dSetValue;
851     da_dDot dDot;
852     da_dMultiply0 dMultiply0;
853     da_dMultiply1 dMultiply1;
854     da_dMultiply2 dMultiply2;
855     da_dFactorCholesky dFactorCholesky;
856     da_dSolveCholesky dSolveCholesky;
857     da_dInvertPDMatrix dInvertPDMatrix;
858     da_dIsPositiveDefinite dIsPositiveDefinite;
859     da_dFactorLDLT dFactorLDLT;
860     da_dSolveL1 dSolveL1;
861     da_dSolveL1T dSolveL1T;
862     da_dVectorScale dVectorScale;
863     da_dSolveLDLT dSolveLDLT;
864     da_dLDLTAddTL dLDLTAddTL;
865     da_dLDLTRemove dLDLTRemove;
866     da_dRemoveRowCol dRemoveRowCol;
867 
868     da_dSetAllocHandler dSetAllocHandler;
869     da_dSetReallocHandler dSetReallocHandler;
870     da_dSetFreeHandler dSetFreeHandler;
871     da_dGetAllocHandler dGetAllocHandler;
872     da_dGetReallocHandler dGetReallocHandler;
873     da_dGetFreeHandler dGetFreeHandler;
874     da_dAlloc dAlloc;
875     da_dRealloc dRealloc;
876     da_dFree dFree;
877     da_dTestRand dTestRand;
878     da_dRand dRand;
879     da_dRandGetSeed dRandGetSeed;
880     da_dRandSetSeed dRandSetSeed;
881     da_dRandInt dRandInt;
882     da_dRandReal dRandReal;
883     //da_dPrintMatrix dPrintMatrix;
884     da_dMakeRandomVector dMakeRandomVector;
885     da_dMakeRandomMatrix dMakeRandomMatrix;
886     da_dClearUpperTriangle dClearUpperTriangle;
887     da_dMaxDifference dMaxDifference;
888     da_dMaxDifferenceLowerTriangle dMaxDifferenceLowerTriangle;
889 
890     da_dWorldCreate dWorldCreate;
891     da_dWorldDestroy dWorldDestroy;
892     da_dWorldSetData dWorldSetData;
893     da_dWorldGetData dWorldGetData;
894     da_dWorldSetGravity dWorldSetGravity;
895     da_dWorldGetGravity dWorldGetGravity;
896     da_dWorldSetERP dWorldSetERP;
897     da_dWorldGetERP dWorldGetERP;
898     da_dWorldSetCFM dWorldSetCFM;
899     da_dWorldGetCFM dWorldGetCFM;
900     da_dWorldUseSharedWorkingMemory dWorldUseSharedWorkingMemory;
901     da_dWorldSetStepIslandsProcessingMaxThreadCount dWorldSetStepIslandsProcessingMaxThreadCount;
902     da_dWorldGetStepIslandsProcessingMaxThreadCount dWorldGetStepIslandsProcessingMaxThreadCount;
903     da_dWorldCleanupWorkingMemory dWorldCleanupWorkingMemory;
904     da_dWorldSetStepMemoryReservationPolicy dWorldSetStepMemoryReservationPolicy;
905     da_dWorldSetStepMemoryManager dWorldSetStepMemoryManager;
906     da_dWorldSetStepThreadingImplementation dWorldSetStepThreadingImplementation;
907     da_dWorldStep dWorldStep;
908     da_dWorldImpulseToForce dWorldImpulseToForce;
909     da_dWorldQuickStep dWorldQuickStep;
910     da_dWorldSetQuickStepNumIterations dWorldSetQuickStepNumIterations;
911     da_dWorldGetQuickStepNumIterations dWorldGetQuickStepNumIterations;
912     da_dWorldSetQuickStepW dWorldSetQuickStepW;
913     da_dWorldGetQuickStepW dWorldGetQuickStepW;
914     da_dWorldSetContactMaxCorrectingVel dWorldSetContactMaxCorrectingVel;
915     da_dWorldGetContactMaxCorrectingVel dWorldGetContactMaxCorrectingVel;
916     da_dWorldSetContactSurfaceLayer dWorldSetContactSurfaceLayer;
917     da_dWorldGetContactSurfaceLayer dWorldGetContactSurfaceLayer;
918     da_dWorldGetAutoDisableLinearThreshold dWorldGetAutoDisableLinearThreshold;
919     da_dWorldSetAutoDisableLinearThreshold dWorldSetAutoDisableLinearThreshold;
920     da_dWorldGetAutoDisableAngularThreshold dWorldGetAutoDisableAngularThreshold;
921     da_dWorldSetAutoDisableAngularThreshold dWorldSetAutoDisableAngularThreshold;
922     da_dWorldGetAutoDisableAverageSamplesCount dWorldGetAutoDisableAverageSamplesCount;
923     da_dWorldSetAutoDisableAverageSamplesCount dWorldSetAutoDisableAverageSamplesCount;
924     da_dWorldGetAutoDisableSteps dWorldGetAutoDisableSteps;
925     da_dWorldSetAutoDisableSteps dWorldSetAutoDisableSteps;
926     da_dWorldGetAutoDisableTime dWorldGetAutoDisableTime;
927     da_dWorldSetAutoDisableTime dWorldSetAutoDisableTime;
928     da_dWorldGetAutoDisableFlag dWorldGetAutoDisableFlag;
929     da_dWorldSetAutoDisableFlag dWorldSetAutoDisableFlag;
930     da_dWorldGetLinearDampingThreshold dWorldGetLinearDampingThreshold;
931     da_dWorldSetLinearDampingThreshold dWorldSetLinearDampingThreshold;
932     da_dWorldGetAngularDampingThreshold dWorldGetAngularDampingThreshold;
933     da_dWorldSetAngularDampingThreshold dWorldSetAngularDampingThreshold;
934     da_dWorldGetLinearDamping dWorldGetLinearDamping;
935     da_dWorldSetLinearDamping dWorldSetLinearDamping;
936     da_dWorldGetAngularDamping dWorldGetAngularDamping;
937     da_dWorldSetAngularDamping dWorldSetAngularDamping;
938     da_dWorldSetDamping dWorldSetDamping;
939     da_dWorldGetMaxAngularSpeed dWorldGetMaxAngularSpeed;
940     da_dWorldSetMaxAngularSpeed dWorldSetMaxAngularSpeed;
941     da_dBodyGetAutoDisableLinearThreshold dBodyGetAutoDisableLinearThreshold;
942     da_dBodySetAutoDisableLinearThreshold dBodySetAutoDisableLinearThreshold;
943     da_dBodyGetAutoDisableAngularThreshold dBodyGetAutoDisableAngularThreshold;
944     da_dBodySetAutoDisableAngularThreshold dBodySetAutoDisableAngularThreshold;
945     da_dBodyGetAutoDisableAverageSamplesCount dBodyGetAutoDisableAverageSamplesCount;
946     da_dBodySetAutoDisableAverageSamplesCount dBodySetAutoDisableAverageSamplesCount;
947     da_dBodyGetAutoDisableSteps dBodyGetAutoDisableSteps;
948     da_dBodySetAutoDisableSteps dBodySetAutoDisableSteps;
949     da_dBodyGetAutoDisableTime dBodyGetAutoDisableTime;
950     da_dBodySetAutoDisableTime dBodySetAutoDisableTime;
951     da_dBodyGetAutoDisableFlag dBodyGetAutoDisableFlag;
952     da_dBodySetAutoDisableFlag dBodySetAutoDisableFlag;
953     da_dBodySetAutoDisableDefaults dBodySetAutoDisableDefaults;
954     da_dBodyGetWorld dBodyGetWorld;
955     da_dBodyCreate dBodyCreate;
956     da_dBodyDestroy dBodyDestroy;
957     da_dBodySetData dBodySetData;
958     da_dBodyGetData dBodyGetData;
959     da_dBodySetPosition dBodySetPosition;
960     da_dBodySetRotation dBodySetRotation;
961     da_dBodySetQuaternion dBodySetQuaternion;
962     da_dBodySetLinearVel dBodySetLinearVel;
963     da_dBodySetAngularVel dBodySetAngularVel;
964     da_dBodyGetPosition dBodyGetPosition;
965     da_dBodyCopyPosition dBodyCopyPosition;
966     da_dBodyGetRotation dBodyGetRotation;
967     da_dBodyCopyRotation dBodyCopyRotation;
968     da_dBodyGetQuaternion dBodyGetQuaternion;
969     da_dBodyCopyQuaternion dBodyCopyQuaternion;
970     da_dBodyGetLinearVel dBodyGetLinearVel;
971     da_dBodyGetAngularVel dBodyGetAngularVel;
972     da_dBodySetMass dBodySetMass;
973     da_dBodyGetMass dBodyGetMass;
974     da_dBodyAddForce dBodyAddForce;
975     da_dBodyAddTorque dBodyAddTorque;
976     da_dBodyAddRelForce dBodyAddRelForce;
977     da_dBodyAddRelTorque dBodyAddRelTorque;
978     da_dBodyAddForceAtPos dBodyAddForceAtPos;
979     da_dBodyAddForceAtRelPos dBodyAddForceAtRelPos;
980     da_dBodyAddRelForceAtPos dBodyAddRelForceAtPos;
981     da_dBodyAddRelForceAtRelPos dBodyAddRelForceAtRelPos;
982     da_dBodyGetForce dBodyGetForce;
983     da_dBodyGetTorque dBodyGetTorque;
984     da_dBodySetForce dBodySetForce;
985     da_dBodySetTorque dBodySetTorque;
986     da_dBodyGetRelPointPos dBodyGetRelPointPos;
987     da_dBodyGetRelPointVel dBodyGetRelPointVel;
988     da_dBodyGetPointVel dBodyGetPointVel;
989     da_dBodyGetPosRelPoint dBodyGetPosRelPoint;
990     da_dBodyVectorToWorld dBodyVectorToWorld;
991     da_dBodyVectorFromWorld dBodyVectorFromWorld;
992     da_dBodySetFiniteRotationMode dBodySetFiniteRotationMode;
993     da_dBodySetFiniteRotationAxis dBodySetFiniteRotationAxis;
994     da_dBodyGetFiniteRotationMode dBodyGetFiniteRotationMode;
995     da_dBodyGetFiniteRotationAxis dBodyGetFiniteRotationAxis;
996     da_dBodyGetNumJoints dBodyGetNumJoints;
997     da_dBodyGetJoint dBodyGetJoint;
998     da_dBodySetDynamic dBodySetDynamic;
999     da_dBodySetKinematic dBodySetKinematic;
1000     da_dBodyIsKinematic dBodyIsKinematic;
1001     da_dBodyEnable dBodyEnable;
1002     da_dBodyDisable dBodyDisable;
1003     da_dBodyIsEnabled dBodyIsEnabled;
1004     da_dBodySetGravityMode dBodySetGravityMode;
1005     da_dBodyGetGravityMode dBodyGetGravityMode;
1006     da_dBodySetMovedCallback dBodySetMovedCallback;
1007     da_dBodyGetFirstGeom dBodyGetFirstGeom;
1008     da_dBodyGetNextGeom dBodyGetNextGeom;
1009     da_dBodySetDampingDefaults dBodySetDampingDefaults;
1010     da_dBodyGetLinearDamping dBodyGetLinearDamping;
1011     da_dBodySetLinearDamping dBodySetLinearDamping;
1012     da_dBodyGetAngularDamping dBodyGetAngularDamping;
1013     da_dBodySetAngularDamping dBodySetAngularDamping;
1014     da_dBodySetDamping dBodySetDamping;
1015     da_dBodyGetLinearDampingThreshold dBodyGetLinearDampingThreshold;
1016     da_dBodySetLinearDampingThreshold dBodySetLinearDampingThreshold;
1017     da_dBodyGetAngularDampingThreshold dBodyGetAngularDampingThreshold;
1018     da_dBodySetAngularDampingThreshold dBodySetAngularDampingThreshold;
1019     da_dBodyGetMaxAngularSpeed dBodyGetMaxAngularSpeed;
1020     da_dBodySetMaxAngularSpeed dBodySetMaxAngularSpeed;
1021     da_dBodyGetGyroscopicMode dBodyGetGyroscopicMode;
1022     da_dBodySetGyroscopicMode dBodySetGyroscopicMode;
1023     da_dJointCreateBall dJointCreateBall;
1024     da_dJointCreateHinge dJointCreateHinge;
1025     da_dJointCreateSlider dJointCreateSlider;
1026     da_dJointCreateContact dJointCreateContact;
1027     da_dJointCreateHinge2 dJointCreateHinge2;
1028     da_dJointCreateUniversal dJointCreateUniversal;
1029     da_dJointCreatePR dJointCreatePR;
1030     da_dJointCreatePU dJointCreatePU;
1031     da_dJointCreatePiston dJointCreatePiston;
1032     da_dJointCreateFixed dJointCreateFixed;
1033     da_dJointCreateNull dJointCreateNull;
1034     da_dJointCreateAMotor dJointCreateAMotor;
1035     da_dJointCreateLMotor dJointCreateLMotor;
1036     da_dJointCreatePlane2D dJointCreatePlane2D;
1037     da_dJointCreateDBall dJointCreateDBall;
1038     da_dJointCreateDHinge dJointCreateDHinge;
1039     da_dJointCreateTransmission dJointCreateTransmission;
1040     da_dJointDestroy dJointDestroy;
1041     da_dJointGroupCreate dJointGroupCreate;
1042     da_dJointGroupDestroy dJointGroupDestroy;
1043     da_dJointGroupEmpty dJointGroupEmpty;
1044     da_dJointGetNumBodies dJointGetNumBodies;
1045     da_dJointAttach dJointAttach;
1046     da_dJointEnable dJointEnable;
1047     da_dJointDisable dJointDisable;
1048     da_dJointIsEnabled dJointIsEnabled;
1049     da_dJointSetData dJointSetData;
1050     da_dJointGetData dJointGetData;
1051     da_dJointGetType dJointGetType;
1052     da_dJointGetBody dJointGetBody;
1053     da_dJointSetFeedback dJointSetFeedback;
1054     da_dJointGetFeedback dJointGetFeedback;
1055     da_dJointSetBallAnchor dJointSetBallAnchor;
1056     da_dJointSetBallAnchor2 dJointSetBallAnchor2;
1057     da_dJointSetBallParam dJointSetBallParam;
1058     da_dJointSetHingeAnchor dJointSetHingeAnchor;
1059     da_dJointSetHingeAnchorDelta dJointSetHingeAnchorDelta;
1060     da_dJointSetHingeAxis dJointSetHingeAxis;
1061     da_dJointSetHingeAxisOffset dJointSetHingeAxisOffset;
1062     da_dJointSetHingeParam dJointSetHingeParam;
1063     da_dJointAddHingeTorque dJointAddHingeTorque;
1064     da_dJointSetSliderAxis dJointSetSliderAxis;
1065     da_dJointSetSliderAxisDelta dJointSetSliderAxisDelta;
1066     da_dJointSetSliderParam dJointSetSliderParam;
1067     da_dJointAddSliderForce dJointAddSliderForce;
1068     da_dJointSetHinge2Anchor dJointSetHinge2Anchor;
1069     da_dJointSetHinge2Axes dJointSetHinge2Axes;
1070     da_dJointSetHinge2Param dJointSetHinge2Param;
1071     da_dJointAddHinge2Torques dJointAddHinge2Torques;
1072     da_dJointSetUniversalAnchor dJointSetUniversalAnchor;
1073     da_dJointSetUniversalAxis1 dJointSetUniversalAxis1;
1074     da_dJointSetUniversalAxis1Offset dJointSetUniversalAxis1Offset;
1075     da_dJointSetUniversalAxis2 dJointSetUniversalAxis2;
1076     da_dJointSetUniversalAxis2Offset dJointSetUniversalAxis2Offset;
1077     da_dJointSetUniversalParam dJointSetUniversalParam;
1078     da_dJointAddUniversalTorques dJointAddUniversalTorques;
1079     da_dJointSetPRAnchor dJointSetPRAnchor;
1080     da_dJointSetPRAxis1 dJointSetPRAxis1;
1081     da_dJointSetPRAxis2 dJointSetPRAxis2;
1082     da_dJointSetPRParam dJointSetPRParam;
1083     da_dJointAddPRTorque dJointAddPRTorque;
1084     da_dJointSetPUAnchor dJointSetPUAnchor;
1085     da_dJointSetPUAnchorOffset dJointSetPUAnchorOffset;
1086     da_dJointSetPUAxis1 dJointSetPUAxis1;
1087     da_dJointSetPUAxis2 dJointSetPUAxis2;
1088     da_dJointSetPUAxis3 dJointSetPUAxis3;
1089     da_dJointSetPUAxisP dJointSetPUAxisP;
1090     da_dJointSetPUParam dJointSetPUParam;
1091     da_dJointSetPistonAnchor dJointSetPistonAnchor;
1092     da_dJointSetPistonAnchorOffset dJointSetPistonAnchorOffset;
1093     da_dJointSetPistonAxis dJointSetPistonAxis;
1094     da_dJointSetPistonParam dJointSetPistonParam;
1095     da_dJointAddPistonForce dJointAddPistonForce;
1096     da_dJointSetFixed dJointSetFixed;
1097     da_dJointSetFixedParam dJointSetFixedParam;
1098     da_dJointSetAMotorNumAxes dJointSetAMotorNumAxes;
1099     da_dJointSetAMotorAxis dJointSetAMotorAxis;
1100     da_dJointSetAMotorAngle dJointSetAMotorAngle;
1101     da_dJointSetAMotorParam dJointSetAMotorParam;
1102     da_dJointSetAMotorMode dJointSetAMotorMode;
1103     da_dJointAddAMotorTorques dJointAddAMotorTorques;
1104     da_dJointSetLMotorNumAxes dJointSetLMotorNumAxes;
1105     da_dJointSetLMotorAxis dJointSetLMotorAxis;
1106     da_dJointSetLMotorParam dJointSetLMotorParam;
1107     da_dJointSetPlane2DXParam dJointSetPlane2DXParam;
1108     da_dJointSetPlane2DYParam dJointSetPlane2DYParam;
1109     da_dJointSetPlane2DAngleParam dJointSetPlane2DAngleParam;
1110     da_dJointGetBallAnchor dJointGetBallAnchor;
1111     da_dJointGetBallAnchor2 dJointGetBallAnchor2;
1112     da_dJointGetBallParam dJointGetBallParam;
1113     da_dJointGetHingeAnchor dJointGetHingeAnchor;
1114     da_dJointGetHingeAnchor2 dJointGetHingeAnchor2;
1115     da_dJointGetHingeAxis dJointGetHingeAxis;
1116     da_dJointGetHingeParam dJointGetHingeParam;
1117     da_dJointGetHingeAngle dJointGetHingeAngle;
1118     da_dJointGetHingeAngleRate dJointGetHingeAngleRate;
1119     da_dJointGetSliderPosition dJointGetSliderPosition;
1120     da_dJointGetSliderPositionRate dJointGetSliderPositionRate;
1121     da_dJointGetSliderAxis dJointGetSliderAxis;
1122     da_dJointGetSliderParam dJointGetSliderParam;
1123     da_dJointGetHinge2Anchor dJointGetHinge2Anchor;
1124     da_dJointGetHinge2Anchor2 dJointGetHinge2Anchor2;
1125     da_dJointGetHinge2Axis1 dJointGetHinge2Axis1;
1126     da_dJointGetHinge2Axis2 dJointGetHinge2Axis2;
1127     da_dJointGetHinge2Param dJointGetHinge2Param;
1128     da_dJointGetHinge2Angle1 dJointGetHinge2Angle1;
1129     da_dJointGetHinge2Angle2 dJointGetHinge2Angle2;
1130     da_dJointGetHinge2Angle1Rate dJointGetHinge2Angle1Rate;
1131     da_dJointGetHinge2Angle2Rate dJointGetHinge2Angle2Rate;
1132     da_dJointGetUniversalAnchor dJointGetUniversalAnchor;
1133     da_dJointGetUniversalAnchor2 dJointGetUniversalAnchor2;
1134     da_dJointGetUniversalAxis1 dJointGetUniversalAxis1;
1135     da_dJointGetUniversalAxis2 dJointGetUniversalAxis2;
1136     da_dJointGetUniversalParam dJointGetUniversalParam;
1137     da_dJointGetUniversalAngles dJointGetUniversalAngles;
1138     da_dJointGetUniversalAngle1 dJointGetUniversalAngle1;
1139     da_dJointGetUniversalAngle2 dJointGetUniversalAngle2;
1140     da_dJointGetUniversalAngle1Rate dJointGetUniversalAngle1Rate;
1141     da_dJointGetUniversalAngle2Rate dJointGetUniversalAngle2Rate;
1142     da_dJointGetPRAnchor dJointGetPRAnchor;
1143     da_dJointGetPRPosition dJointGetPRPosition;
1144     da_dJointGetPRPositionRate dJointGetPRPositionRate;
1145     da_dJointGetPRAngle dJointGetPRAngle;
1146     da_dJointGetPRAngleRate dJointGetPRAngleRate;
1147     da_dJointGetPRAxis1 dJointGetPRAxis1;
1148     da_dJointGetPRAxis2 dJointGetPRAxis2;
1149     da_dJointGetPRParam dJointGetPRParam;
1150     da_dJointGetPUAnchor dJointGetPUAnchor;
1151     da_dJointGetPUPosition dJointGetPUPosition;
1152     da_dJointGetPUPositionRate dJointGetPUPositionRate;
1153     da_dJointGetPUAxis1 dJointGetPUAxis1;
1154     da_dJointGetPUAxis2 dJointGetPUAxis2;
1155     da_dJointGetPUAxis3 dJointGetPUAxis3;
1156     da_dJointGetPUAxisP dJointGetPUAxisP;
1157     da_dJointGetPUAngles dJointGetPUAngles;
1158     da_dJointGetPUAngle1 dJointGetPUAngle1;
1159     da_dJointGetPUAngle1Rate dJointGetPUAngle1Rate;
1160     da_dJointGetPUAngle2 dJointGetPUAngle2;
1161     da_dJointGetPUAngle2Rate dJointGetPUAngle2Rate;
1162     da_dJointGetPUParam dJointGetPUParam;
1163     da_dJointGetPistonPosition dJointGetPistonPosition;
1164     da_dJointGetPistonPositionRate dJointGetPistonPositionRate;
1165     da_dJointGetPistonAngle dJointGetPistonAngle;
1166     da_dJointGetPistonAngleRate dJointGetPistonAngleRate;
1167     da_dJointGetPistonAnchor dJointGetPistonAnchor;
1168     da_dJointGetPistonAnchor2 dJointGetPistonAnchor2;
1169     da_dJointGetPistonAxis dJointGetPistonAxis;
1170     da_dJointGetPistonParam dJointGetPistonParam;
1171     da_dJointGetAMotorNumAxes dJointGetAMotorNumAxes;
1172     da_dJointGetAMotorAxis dJointGetAMotorAxis;
1173     da_dJointGetAMotorAxisRel dJointGetAMotorAxisRel;
1174     da_dJointGetAMotorAngle dJointGetAMotorAngle;
1175     da_dJointGetAMotorAngleRate dJointGetAMotorAngleRate;
1176     da_dJointGetAMotorParam dJointGetAMotorParam;
1177     da_dJointGetAMotorMode dJointGetAMotorMode;
1178     da_dJointGetLMotorNumAxes dJointGetLMotorNumAxes;
1179     da_dJointGetLMotorAxis dJointGetLMotorAxis;
1180     da_dJointGetLMotorParam dJointGetLMotorParam;
1181     da_dJointGetFixedParam dJointGetFixedParam;
1182     da_dJointGetTransmissionContactPoint1 dJointGetTransmissionContactPoint1;
1183     da_dJointGetTransmissionContactPoint2 dJointGetTransmissionContactPoint2;
1184     da_dJointSetTransmissionAxis1 dJointSetTransmissionAxis1;
1185     da_dJointGetTransmissionAxis1 dJointGetTransmissionAxis1;
1186     da_dJointSetTransmissionAxis2 dJointSetTransmissionAxis2;
1187     da_dJointGetTransmissionAxis2 dJointGetTransmissionAxis2;
1188     da_dJointSetTransmissionAnchor1 dJointSetTransmissionAnchor1;
1189     da_dJointGetTransmissionAnchor1 dJointGetTransmissionAnchor1;
1190     da_dJointSetTransmissionAnchor2 dJointSetTransmissionAnchor2;
1191     da_dJointGetTransmissionAnchor2 dJointGetTransmissionAnchor2;
1192     da_dJointSetTransmissionParam dJointSetTransmissionParam;
1193     da_dJointGetTransmissionParam dJointGetTransmissionParam;
1194     da_dJointSetTransmissionMode dJointSetTransmissionMode;
1195     da_dJointGetTransmissionMode dJointGetTransmissionMode;
1196     da_dJointSetTransmissionRatio dJointSetTransmissionRatio;
1197     da_dJointGetTransmissionRatio dJointGetTransmissionRatio;
1198     da_dJointSetTransmissionAxis dJointSetTransmissionAxis;
1199     da_dJointGetTransmissionAxis dJointGetTransmissionAxis;
1200     da_dJointGetTransmissionAngle1 dJointGetTransmissionAngle1;
1201     da_dJointGetTransmissionAngle2 dJointGetTransmissionAngle2;
1202     da_dJointGetTransmissionRadius1 dJointGetTransmissionRadius1;
1203     da_dJointGetTransmissionRadius2 dJointGetTransmissionRadius2;
1204     da_dJointSetTransmissionRadius1 dJointSetTransmissionRadius1;
1205     da_dJointSetTransmissionRadius2 dJointSetTransmissionRadius2;
1206     da_dJointGetTransmissionBacklash dJointGetTransmissionBacklash;
1207     da_dJointSetTransmissionBacklash dJointSetTransmissionBacklash;
1208     da_dJointSetDBallAnchor1 dJointSetDBallAnchor1;
1209     da_dJointSetDBallAnchor2 dJointSetDBallAnchor2;
1210     da_dJointGetDBallAnchor1 dJointGetDBallAnchor1;
1211     da_dJointGetDBallAnchor2 dJointGetDBallAnchor2;
1212     da_dJointGetDBallDistance dJointGetDBallDistance;
1213     da_dJointSetDBallParam dJointSetDBallParam;
1214     da_dJointGetDBallParam dJointGetDBallParam;
1215     da_dJointSetDHingeAxis dJointSetDHingeAxis;
1216     da_dJointGetDHingeAxis dJointGetDHingeAxis;
1217     da_dJointSetDHingeAnchor1 dJointSetDHingeAnchor1;
1218     da_dJointSetDHingeAnchor2 dJointSetDHingeAnchor2;
1219     da_dJointGetDHingeAnchor1 dJointGetDHingeAnchor1;
1220     da_dJointGetDHingeAnchor2 dJointGetDHingeAnchor2;
1221     da_dJointGetDHingeDistance dJointGetDHingeDistance;
1222     da_dJointSetDHingeParam dJointSetDHingeParam;
1223     da_dJointGetDHingeParam dJointGetDHingeParam;
1224     da_dConnectingJoint dConnectingJoint;
1225     da_dConnectingJointList dConnectingJointList;
1226     da_dAreConnected dAreConnected;
1227     da_dAreConnectedExcluding dAreConnectedExcluding;
1228 
1229     da_dInitODE dInitODE;
1230     da_dInitODE2 dInitODE2;
1231     da_dAllocateODEDataForThread dAllocateODEDataForThread;
1232     da_dCleanupODEAllDataForThread dCleanupODEAllDataForThread;
1233     da_dCloseODE dCloseODE;
1234     da_dSafeNormalize3 dSafeNormalize3;
1235     da_dSafeNormalize4 dSafeNormalize4;
1236     da_dNormalize3 dNormalize3;
1237     da_dNormalize4 dNormalize4;
1238     da_dPlaneSpace dPlaneSpace;
1239     da_dOrthogonalizeR dOrthogonalizeR;
1240 
1241     da_dRSetIdentity dRSetIdentity;
1242     da_dRFromAxisAndAngle dRFromAxisAndAngle;
1243     da_dRFromEulerAngles dRFromEulerAngles;
1244     da_dRFrom2Axes dRFrom2Axes;
1245     da_dRFromZAxis dRFromZAxis;
1246     da_dQSetIdentity dQSetIdentity;
1247     da_dQFromAxisAndAngle dQFromAxisAndAngle;
1248     da_dQMultiply0 dQMultiply0;
1249     da_dQMultiply1 dQMultiply1;
1250     da_dQMultiply2 dQMultiply2;
1251     da_dQMultiply3 dQMultiply3;
1252     da_dRfromQ dRfromQ;
1253     da_dQfromR dQfromR;
1254     da_dDQfromW dDQfromW;
1255 
1256     da_dStopwatchReset dStopwatchReset;
1257     da_dStopwatchStart dStopwatchStart;
1258     da_dStopwatchStop dStopwatchStop;
1259     da_dStopwatchTime dStopwatchTime;
1260     da_dTimerStart dTimerStart;
1261     da_dTimerNow dTimerNow;
1262     da_dTimerEnd dTimerEnd;
1263     da_dTimerReport dTimerReport;
1264     da_dTimerTicksPerSecond dTimerTicksPerSecond;
1265     da_dTimerResolution dTimerResolution;
1266 }
1267 
1268 alias dCreateCapsule dCreateCCylinder;
1269 alias dGeomCapsuleSetParams dGeomCCylinderSetParams;
1270 alias dGeomCapsuleGetParams dGeomCCylinderGetParams;
1271 alias dGeomCapsulePointDepth dGeomCCylinderPointDepth;