orx 1.16
Portable Game Engine
Loading...
Searching...
No Matches
orxPhysics.h
Go to the documentation of this file.
1/* Orx - Portable Game Engine
2 *
3 * Copyright (c) 2008- Orx-Project
4 *
5 * This software is provided 'as-is', without any express or implied
6 * warranty. In no event will the authors be held liable for any damages
7 * arising from the use of this software.
8 *
9 * Permission is granted to anyone to use this software for any purpose,
10 * including commercial applications, and to alter it and redistribute it
11 * freely, subject to the following restrictions:
12 *
13 * 1. The origin of this software must not be misrepresented; you must not
14 * claim that you wrote the original software. If you use this software
15 * in a product, an acknowledgment in the product documentation would be
16 * appreciated but is not required.
17 *
18 * 2. Altered source versions must be plainly marked as such, and must not be
19 * misrepresented as being the original software.
20 *
21 * 3. This notice may not be removed or altered from any source
22 * distribution.
23 */
24
32
41
42
43#ifndef _orxPHYSICS_H_
44#define _orxPHYSICS_H_
45
46
47#include "orxInclude.h"
49#include "math/orxAABox.h"
50
51
54#define orxBODY_DEF_KU32_FLAG_NONE 0x00000000
55
56#define orxBODY_DEF_KU32_FLAG_2D 0x00000001
57#define orxBODY_DEF_KU32_FLAG_DYNAMIC 0x00000002
58#define orxBODY_DEF_KU32_FLAG_HIGH_SPEED 0x00000004
59#define orxBODY_DEF_KU32_FLAG_FIXED_ROTATION 0x00000008
60#define orxBODY_DEF_KU32_FLAG_CAN_MOVE 0x00000010
61#define orxBODY_DEF_KU32_FLAG_ALLOW_SLEEP 0x00000020
62
63#define orxBODY_DEF_KU32_MASK_ALL 0xFFFFFFFF
64
67#define orxBODY_PART_DEF_KU32_FLAG_NONE 0x00000000
68
69#define orxBODY_PART_DEF_KU32_FLAG_SPHERE 0x00000001
70#define orxBODY_PART_DEF_KU32_FLAG_BOX 0x00000002
71#define orxBODY_PART_DEF_KU32_FLAG_MESH 0x00000004
72#define orxBODY_PART_DEF_KU32_FLAG_EDGE 0x00000008
73#define orxBODY_PART_DEF_KU32_FLAG_CHAIN 0x00000010
74
75#define orxBODY_PART_DEF_KU32_MASK_TYPE 0x0000001F
76
77#define orxBODY_PART_DEF_KU32_FLAG_SOLID 0x10000000
78
79#define orxBODY_PART_DEF_KU32_MASK_ALL 0xFFFFFFFF
80
83#define orxBODY_JOINT_DEF_KU32_FLAG_NONE 0x00000000
84
85#define orxBODY_JOINT_DEF_KU32_FLAG_REVOLUTE 0x00000001
86#define orxBODY_JOINT_DEF_KU32_FLAG_PRISMATIC 0x00000002
87#define orxBODY_JOINT_DEF_KU32_FLAG_SPRING 0x00000004
88#define orxBODY_JOINT_DEF_KU32_FLAG_ROPE 0x00000008
89#define orxBODY_JOINT_DEF_KU32_FLAG_PULLEY 0x00000010
90#define orxBODY_JOINT_DEF_KU32_FLAG_SUSPENSION 0x00000020
91#define orxBODY_JOINT_DEF_KU32_FLAG_WELD 0x00000040
92#define orxBODY_JOINT_DEF_KU32_FLAG_FRICTION 0x00000080
93#define orxBODY_JOINT_DEF_KU32_FLAG_GEAR 0x00000100
94
95#define orxBODY_JOINT_DEF_KU32_MASK_TYPE 0x00000FFF
96
97#define orxBODY_JOINT_DEF_KU32_FLAG_COLLIDE 0x10000000
98#define orxBODY_JOINT_DEF_KU32_FLAG_ROTATION_LIMIT 0x20000000
99#define orxBODY_JOINT_DEF_KU32_FLAG_MOTOR 0x40000000
100#define orxBODY_JOINT_DEF_KU32_FLAG_TRANSLATION_LIMIT 0x80000000
101
102#define orxBODY_JOINT_DEF_KU32_MASK_ALL 0xFFFFFFFF
103
104
107#define orxBODY_PART_DEF_KU32_MESH_VERTEX_NUMBER 8
108
109
112typedef struct __orxBODY_DEF_t
113{
115 orxFLOAT fRotation;
116 orxFLOAT fInertia;
117 orxFLOAT fMass;
118 orxFLOAT fLinearDamping;
120 orxU32 u32Flags;
121
123
126typedef struct __orxBODY_PART_DEF_t
127{
129 orxFLOAT fFriction;
130 orxFLOAT fRestitution;
131 orxFLOAT fDensity;
134 orxU32 u32Flags;
135
136 union
137 {
138 struct
139 {
141 orxFLOAT fRadius;
142 } stSphere;
143
144 struct
145 {
147 } stAABox;
148
149 struct
150 {
153
154 } stMesh;
155
156 struct
157 {
158 orxVECTOR avVertices[2];
161 orxBOOL bHasPrevious;
162 orxBOOL bHasNext;
163
164 } stEdge;
165
166 struct
167 {
168 orxVECTOR vPrevious;
169 orxVECTOR vNext;
171 orxU32 u32VertexCount;
172 orxBOOL bIsLoop;
173 orxBOOL bHasPrevious;
174 orxBOOL bHasNext;
175
176 } stChain;
177
178 };
179
181
184typedef struct __orxBODY_JOINT_DEF_t
185{
190
191 union
192 {
193 struct
194 {
196 orxFLOAT fMinRotation;
197 orxFLOAT fMaxRotation;
198 orxFLOAT fMotorSpeed;
200
201 } stRevolute;
202
203 struct
204 {
206 orxFLOAT fDefaultRotation;
209 orxFLOAT fMotorSpeed;
210 orxFLOAT fMaxMotorForce;
211
212 } stPrismatic;
213
214 struct
215 {
216 orxFLOAT fLength;
217 orxFLOAT fFrequency;
218 orxFLOAT fDamping;
219
220 } stSpring;
221
222 struct
223 {
224 orxFLOAT fLength;
225
226 } stRope;
227
228 struct
229 {
232 orxFLOAT fLengthRatio;
233 orxFLOAT fSrcLength;
234 orxFLOAT fMaxSrcLength;
235 orxFLOAT fDstLength;
236 orxFLOAT fMaxDstLength;
237
238 } stPulley;
239
240 struct
241 {
242 orxVECTOR vTranslationAxis;
243 orxFLOAT fFrequency;
244 orxFLOAT fDamping;
245 orxFLOAT fMotorSpeed;
246 orxFLOAT fMaxMotorForce;
247
248 } stSuspension;
249
250 struct
251 {
252 orxFLOAT fDefaultRotation;
253
254 } stWeld;
255
256 struct
257 {
258 orxFLOAT fMaxForce;
259 orxFLOAT fMaxTorque;
260
261 } stFriction;
262
263 struct
264 {
265 const orxSTRING zSrcJointName;
266 const orxSTRING zDstJointName;
267 orxFLOAT fJointRatio;
268
269 } stGear;
270
271 };
272
273 orxU32 u32Flags;
274
276
277
290
293typedef struct __orxPHYSICS_EVENT_PAYLOAD_t
294{
297 struct __orxBODY_PART_t *pstSenderPart;
298 struct __orxBODY_PART_t *pstRecipientPart;
299
301
304typedef struct __orxPHYSICS_BODY_t orxPHYSICS_BODY;
305
308typedef struct __orxPHYSICS_BODY_PART_t orxPHYSICS_BODY_PART;
309
312typedef struct __orxPHYSICS_BODY_JOINT_t orxPHYSICS_BODY_JOINT;
313
314
317#define orxPHYSICS_KZ_CONFIG_SECTION "Physics"
318#define orxPHYSICS_KZ_CONFIG_GRAVITY "Gravity"
319#define orxPHYSICS_KZ_CONFIG_ALLOW_SLEEP "AllowSleep"
320#define orxPHYSICS_KZ_CONFIG_ITERATIONS "IterationsPerStep"
321#define orxPHYSICS_KZ_CONFIG_RATIO "DimensionRatio"
322#define orxPHYSICS_KZ_CONFIG_STEP_FREQUENCY "StepFrequency"
323#define orxPHYSICS_KZ_CONFIG_SHOW_DEBUG "ShowDebug"
324#define orxPHYSICS_KZ_CONFIG_COLLISION_FLAG_LIST "CollisionFlagList"
325#define orxPHYSICS_KZ_CONFIG_INTERPOLATE "Interpolate"
326
327
328/***************************************************************************
329 * Functions directly implemented by orx core
330 ***************************************************************************/
331
334extern orxDLLAPI void orxFASTCALL orxPhysics_Setup();
335
336
341extern orxDLLAPI const orxSTRING orxFASTCALL orxPhysics_GetCollisionFlagName(orxU32 _u32Flag);
342
347extern orxDLLAPI orxU32 orxFASTCALL orxPhysics_GetCollisionFlagValue(const orxSTRING _zFlag);
348
349
350/***************************************************************************
351 * Functions extended by plugins
352 ***************************************************************************/
353
358
361extern orxDLLAPI void orxFASTCALL orxPhysics_Exit();
362
363
368extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetGravity(const orxVECTOR *_pvGravity);
369
374extern orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetGravity(orxVECTOR *_pvGravity);
375
376
382extern orxDLLAPI orxPHYSICS_BODY *orxFASTCALL orxPhysics_CreateBody(const orxHANDLE _hUserData, const orxBODY_DEF *_pstBodyDef);
383
387extern orxDLLAPI void orxFASTCALL orxPhysics_DeleteBody(orxPHYSICS_BODY *_pstBody);
388
395extern orxDLLAPI orxPHYSICS_BODY_PART *orxFASTCALL orxPhysics_CreatePart(orxPHYSICS_BODY *_pstBody, const orxHANDLE _hUserData, const orxBODY_PART_DEF *_pstBodyPartDef);
396
400extern orxDLLAPI void orxFASTCALL orxPhysics_DeletePart(orxPHYSICS_BODY_PART *_pstBodyPart);
401
402
410extern orxDLLAPI orxPHYSICS_BODY_JOINT *orxFASTCALL orxPhysics_CreateJoint(orxPHYSICS_BODY *_pstSrcBody, orxPHYSICS_BODY *_pstDstBody, const orxHANDLE _hUserData, const orxBODY_JOINT_DEF *_pstBodyJointDef);
411
415extern orxDLLAPI void orxFASTCALL orxPhysics_DeleteJoint(orxPHYSICS_BODY_JOINT *_pstBodyJoint);
416
417
423extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPosition(orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvPosition);
424
430extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetRotation(orxPHYSICS_BODY *_pstBody, orxFLOAT _fRotation);
431
437extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetSpeed(orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvSpeed);
438
444extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAngularVelocity(orxPHYSICS_BODY *_pstBody, orxFLOAT _fVelocity);
445
451extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetCustomGravity(orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvCustomGravity);
452
458extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetFixedRotation(orxPHYSICS_BODY *_pstBody, orxBOOL _bFixed);
459
465extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetDynamic(orxPHYSICS_BODY *_pstBody, orxBOOL _bDynamic);
466
472extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAllowMoving(orxPHYSICS_BODY *_pstBody, orxBOOL _bAllowMoving);
473
479extern orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetPosition(const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvPosition);
480
485extern orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetRotation(const orxPHYSICS_BODY *_pstBody);
486
492extern orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetSpeed(const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvSpeed);
493
500extern orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetSpeedAtWorldPosition(const orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvPosition, orxVECTOR *_pvSpeed);
501
506extern orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetAngularVelocity(const orxPHYSICS_BODY *_pstBody);
507
513extern orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetCustomGravity(const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvCustomGravity);
514
519extern orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsFixedRotation(const orxPHYSICS_BODY *_pstBody);
520
525extern orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetMass(const orxPHYSICS_BODY *_pstBody);
526
532extern orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetMassCenter(const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvMassCenter);
533
534
540extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetLinearDamping(orxPHYSICS_BODY *_pstBody, orxFLOAT _fDamping);
541
547extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAngularDamping(orxPHYSICS_BODY *_pstBody, orxFLOAT _fDamping);
548
553extern orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetLinearDamping(const orxPHYSICS_BODY *_pstBody);
554
559extern orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetAngularDamping(const orxPHYSICS_BODY *_pstBody);
560
561
567extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyTorque(orxPHYSICS_BODY *_pstBody, orxFLOAT _fTorque);
568
575extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyForce(orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvForce, const orxVECTOR *_pvPoint);
576
583extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyImpulse(orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvImpulse, const orxVECTOR *_pvPoint);
584
585
591extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartSelfFlags(orxPHYSICS_BODY_PART *_pstBodyPart, orxU16 _u16SelfFlags);
592
598extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartCheckMask(orxPHYSICS_BODY_PART *_pstBodyPart, orxU16 _u16CheckMask);
599
604extern orxDLLAPI orxU16 orxFASTCALL orxPhysics_GetPartSelfFlags(const orxPHYSICS_BODY_PART *_pstBodyPart);
605
610extern orxDLLAPI orxU16 orxFASTCALL orxPhysics_GetPartCheckMask(const orxPHYSICS_BODY_PART *_pstBodyPart);
611
617extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartSolid(orxPHYSICS_BODY_PART *_pstBodyPart, orxBOOL _bSolid);
618
623extern orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsPartSolid(const orxPHYSICS_BODY_PART *_pstBodyPart);
624
630extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartFriction(orxPHYSICS_BODY_PART *_pstBodyPart, orxFLOAT _fFriction);
631
636extern orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartFriction(const orxPHYSICS_BODY_PART *_pstBodyPart);
637
643extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartRestitution(orxPHYSICS_BODY_PART *_pstBodyPart, orxFLOAT _fRestitution);
644
649extern orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartRestitution(const orxPHYSICS_BODY_PART *_pstBodyPart);
650
656extern orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartDensity(orxPHYSICS_BODY_PART *_pstBodyPart, orxFLOAT _fDensity);
657
662extern orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartDensity(const orxPHYSICS_BODY_PART *_pstBodyPart);
663
669extern orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsInsidePart(const orxPHYSICS_BODY_PART *_pstBodyPart, const orxVECTOR *_pvPosition);
670
671
677extern orxDLLAPI void orxFASTCALL orxPhysics_EnableMotor(orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxBOOL _bEnable);
678
684extern orxDLLAPI void orxFASTCALL orxPhysics_SetJointMotorSpeed(orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxFLOAT _fSpeed);
685
691extern orxDLLAPI void orxFASTCALL orxPhysics_SetJointMaxMotorTorque(orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxFLOAT _fMaxTorque);
692
693
699extern orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetJointReactionForce(const orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxVECTOR *_pvForce);
700
705extern orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetJointReactionTorque(const orxPHYSICS_BODY_JOINT *_pstBodyJoint);
706
707
718extern orxDLLAPI orxHANDLE orxFASTCALL orxPhysics_Raycast(const orxVECTOR *_pvBegin, const orxVECTOR *_pvEnd, orxU16 _u16SelfFlags, orxU16 _u16CheckMask, orxBOOL _bEarlyExit, orxVECTOR *_pvContact, orxVECTOR *_pvNormal);
719
720
729extern orxDLLAPI orxU32 orxFASTCALL orxPhysics_BoxPick(const orxAABOX *_pstBox, orxU16 _u16SelfFlags, orxU16 _u16CheckMask, orxHANDLE _ahUserDataList[], orxU32 _u32Number);
730
731
735extern orxDLLAPI void orxFASTCALL orxPhysics_EnableSimulation(orxBOOL _bEnable);
736
737#endif /* _orxPHYSICS_H_ */
738
#define orxDLLAPI
Definition orxDecl.h:381
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAllowMoving(orxPHYSICS_BODY *_pstBody, orxBOOL _bAllowMoving)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyForce(orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvForce, const orxVECTOR *_pvPoint)
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetMass(const orxPHYSICS_BODY *_pstBody)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAngularDamping(orxPHYSICS_BODY *_pstBody, orxFLOAT _fDamping)
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartFriction(const orxPHYSICS_BODY_PART *_pstBodyPart)
orxPHYSICS_EVENT
Definition orxPhysics.h:281
#define orxBODY_PART_DEF_KU32_MESH_VERTEX_NUMBER
Definition orxPhysics.h:107
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartDensity(orxPHYSICS_BODY_PART *_pstBodyPart, orxFLOAT _fDensity)
orxDLLAPI orxPHYSICS_BODY_JOINT *orxFASTCALL orxPhysics_CreateJoint(orxPHYSICS_BODY *_pstSrcBody, orxPHYSICS_BODY *_pstDstBody, const orxHANDLE _hUserData, const orxBODY_JOINT_DEF *_pstBodyJointDef)
orxDLLAPI void orxFASTCALL orxPhysics_DeleteJoint(orxPHYSICS_BODY_JOINT *_pstBodyJoint)
orxDLLAPI void orxFASTCALL orxPhysics_EnableMotor(orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxBOOL _bEnable)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAngularVelocity(orxPHYSICS_BODY *_pstBody, orxFLOAT _fVelocity)
orxDLLAPI void orxFASTCALL orxPhysics_EnableSimulation(orxBOOL _bEnable)
orxDLLAPI orxU16 orxFASTCALL orxPhysics_GetPartCheckMask(const orxPHYSICS_BODY_PART *_pstBodyPart)
orxDLLAPI orxU16 orxFASTCALL orxPhysics_GetPartSelfFlags(const orxPHYSICS_BODY_PART *_pstBodyPart)
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetJointReactionForce(const orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxVECTOR *_pvForce)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartRestitution(orxPHYSICS_BODY_PART *_pstBodyPart, orxFLOAT _fRestitution)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartCheckMask(orxPHYSICS_BODY_PART *_pstBodyPart, orxU16 _u16CheckMask)
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetCustomGravity(const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvCustomGravity)
struct __orxPHYSICS_BODY_t orxPHYSICS_BODY
Definition orxPhysics.h:304
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetRotation(const orxPHYSICS_BODY *_pstBody)
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartDensity(const orxPHYSICS_BODY_PART *_pstBodyPart)
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetLinearDamping(const orxPHYSICS_BODY *_pstBody)
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetGravity(orxVECTOR *_pvGravity)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetLinearDamping(orxPHYSICS_BODY *_pstBody, orxFLOAT _fDamping)
orxDLLAPI orxPHYSICS_BODY *orxFASTCALL orxPhysics_CreateBody(const orxHANDLE _hUserData, const orxBODY_DEF *_pstBodyDef)
orxDLLAPI orxU32 orxFASTCALL orxPhysics_GetCollisionFlagValue(const orxSTRING _zFlag)
orxDLLAPI void orxFASTCALL orxPhysics_SetJointMaxMotorTorque(orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxFLOAT _fMaxTorque)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetDynamic(orxPHYSICS_BODY *_pstBody, orxBOOL _bDynamic)
orxDLLAPI void orxFASTCALL orxPhysics_DeletePart(orxPHYSICS_BODY_PART *_pstBodyPart)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartFriction(orxPHYSICS_BODY_PART *_pstBodyPart, orxFLOAT _fFriction)
orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsFixedRotation(const orxPHYSICS_BODY *_pstBody)
orxDLLAPI const orxSTRING orxFASTCALL orxPhysics_GetCollisionFlagName(orxU32 _u32Flag)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetSpeed(orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvSpeed)
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetJointReactionTorque(const orxPHYSICS_BODY_JOINT *_pstBodyJoint)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetGravity(const orxVECTOR *_pvGravity)
orxDLLAPI void orxFASTCALL orxPhysics_DeleteBody(orxPHYSICS_BODY *_pstBody)
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetAngularVelocity(const orxPHYSICS_BODY *_pstBody)
orxDLLAPI orxHANDLE orxFASTCALL orxPhysics_Raycast(const orxVECTOR *_pvBegin, const orxVECTOR *_pvEnd, orxU16 _u16SelfFlags, orxU16 _u16CheckMask, orxBOOL _bEarlyExit, orxVECTOR *_pvContact, orxVECTOR *_pvNormal)
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetMassCenter(const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvMassCenter)
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetAngularDamping(const orxPHYSICS_BODY *_pstBody)
orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsPartSolid(const orxPHYSICS_BODY_PART *_pstBodyPart)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyTorque(orxPHYSICS_BODY *_pstBody, orxFLOAT _fTorque)
orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsInsidePart(const orxPHYSICS_BODY_PART *_pstBodyPart, const orxVECTOR *_pvPosition)
orxDLLAPI void orxFASTCALL orxPhysics_Exit()
struct __orxPHYSICS_BODY_JOINT_t orxPHYSICS_BODY_JOINT
Definition orxPhysics.h:312
orxDLLAPI void orxFASTCALL orxPhysics_Setup()
orxDLLAPI void orxFASTCALL orxPhysics_SetJointMotorSpeed(orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxFLOAT _fSpeed)
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetSpeedAtWorldPosition(const orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvPosition, orxVECTOR *_pvSpeed)
struct __orxPHYSICS_BODY_PART_t orxPHYSICS_BODY_PART
Definition orxPhysics.h:308
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetPosition(const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvPosition)
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartRestitution(const orxPHYSICS_BODY_PART *_pstBodyPart)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyImpulse(orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvImpulse, const orxVECTOR *_pvPoint)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPosition(orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvPosition)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetCustomGravity(orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvCustomGravity)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartSolid(orxPHYSICS_BODY_PART *_pstBodyPart, orxBOOL _bSolid)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetFixedRotation(orxPHYSICS_BODY *_pstBody, orxBOOL _bFixed)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetRotation(orxPHYSICS_BODY *_pstBody, orxFLOAT _fRotation)
orxDLLAPI orxPHYSICS_BODY_PART *orxFASTCALL orxPhysics_CreatePart(orxPHYSICS_BODY *_pstBody, const orxHANDLE _hUserData, const orxBODY_PART_DEF *_pstBodyPartDef)
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_Init()
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartSelfFlags(orxPHYSICS_BODY_PART *_pstBodyPart, orxU16 _u16SelfFlags)
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetSpeed(const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvSpeed)
orxDLLAPI orxU32 orxFASTCALL orxPhysics_BoxPick(const orxAABOX *_pstBox, orxU16 _u16SelfFlags, orxU16 _u16CheckMask, orxHANDLE _ahUserDataList[], orxU32 _u32Number)
@ orxPHYSICS_EVENT_NONE
Definition orxPhysics.h:287
@ orxPHYSICS_EVENT_CONTACT_ADD
Definition orxPhysics.h:282
@ orxPHYSICS_EVENT_NUMBER
Definition orxPhysics.h:285
@ orxPHYSICS_EVENT_CONTACT_REMOVE
Definition orxPhysics.h:283
void * orxHANDLE
Definition orxType.h:166
orxSTATUS
Definition orxType.h:270
orxFLOAT fRotation
Definition orxPhysics.h:115
orxFLOAT fAngularDamping
Definition orxPhysics.h:119
orxFLOAT fLinearDamping
Definition orxPhysics.h:118
orxVECTOR vPosition
Definition orxPhysics.h:114
orxFLOAT fInertia
Definition orxPhysics.h:116
orxU32 u32Flags
Definition orxPhysics.h:120
orxFLOAT fMass
Definition orxPhysics.h:117
orxFLOAT fMaxDstLength
Definition orxPhysics.h:236
orxVECTOR vDstScale
Definition orxPhysics.h:187
orxVECTOR vDstGroundAnchor
Definition orxPhysics.h:231
orxFLOAT fSrcLength
Definition orxPhysics.h:233
orxVECTOR vSrcGroundAnchor
Definition orxPhysics.h:230
orxVECTOR vSrcScale
Definition orxPhysics.h:186
orxFLOAT fMaxTranslation
Definition orxPhysics.h:208
orxFLOAT fMaxMotorTorque
Definition orxPhysics.h:199
const orxSTRING zSrcJointName
Definition orxPhysics.h:265
orxFLOAT fMaxTorque
Definition orxPhysics.h:259
orxVECTOR vTranslationAxis
Definition orxPhysics.h:205
orxFLOAT fMaxMotorForce
Definition orxPhysics.h:210
orxFLOAT fMinRotation
Definition orxPhysics.h:196
const orxSTRING zDstJointName
Definition orxPhysics.h:266
orxFLOAT fLengthRatio
Definition orxPhysics.h:232
orxFLOAT fMaxSrcLength
Definition orxPhysics.h:234
orxFLOAT fMotorSpeed
Definition orxPhysics.h:198
orxFLOAT fDefaultRotation
Definition orxPhysics.h:195
orxFLOAT fDstLength
Definition orxPhysics.h:235
orxFLOAT fMaxRotation
Definition orxPhysics.h:197
orxFLOAT fFrequency
Definition orxPhysics.h:217
orxVECTOR vDstAnchor
Definition orxPhysics.h:189
orxFLOAT fJointRatio
Definition orxPhysics.h:267
orxFLOAT fMinTranslation
Definition orxPhysics.h:207
orxVECTOR vSrcAnchor
Definition orxPhysics.h:188
orxVECTOR avVertices[orxBODY_PART_DEF_KU32_MESH_VERTEX_NUMBER]
Definition orxPhysics.h:152
orxVECTOR vCenter
Definition orxPhysics.h:140
orxFLOAT fFriction
Definition orxPhysics.h:129
orxVECTOR vNext
Definition orxPhysics.h:160
orxVECTOR vScale
Definition orxPhysics.h:128
orxU32 u32VertexCount
Definition orxPhysics.h:151
orxFLOAT fRestitution
Definition orxPhysics.h:130
orxFLOAT fDensity
Definition orxPhysics.h:131
orxVECTOR vPrevious
Definition orxPhysics.h:159
orxBOOL bHasPrevious
Definition orxPhysics.h:161
struct __orxBODY_PART_t * pstSenderPart
Definition orxPhysics.h:297
struct __orxBODY_PART_t * pstRecipientPart
Definition orxPhysics.h:298

Generated for orx by doxygen 1.8.11