orx  1.14
Portable Game Engine
OrxPhysics

Data Structures

struct  orxBODY_DEF
 
struct  orxBODY_JOINT_DEF
 
struct  orxBODY_PART_DEF
 
struct  orxPHYSICS_EVENT_PAYLOAD
 

Macros

#define orxBODY_DEF_KU32_FLAG_2D   0x00000001
 
#define orxBODY_DEF_KU32_FLAG_ALLOW_SLEEP   0x00000020
 
#define orxBODY_DEF_KU32_FLAG_CAN_MOVE   0x00000010
 
#define orxBODY_DEF_KU32_FLAG_DYNAMIC   0x00000002
 
#define orxBODY_DEF_KU32_FLAG_FIXED_ROTATION   0x00000008
 
#define orxBODY_DEF_KU32_FLAG_HIGH_SPEED   0x00000004
 
#define orxBODY_DEF_KU32_FLAG_NONE   0x00000000
 
#define orxBODY_DEF_KU32_MASK_ALL   0xFFFFFFFF
 
#define orxBODY_JOINT_DEF_KU32_FLAG_COLLIDE   0x10000000
 
#define orxBODY_JOINT_DEF_KU32_FLAG_FRICTION   0x00000080
 
#define orxBODY_JOINT_DEF_KU32_FLAG_GEAR   0x00000100
 
#define orxBODY_JOINT_DEF_KU32_FLAG_MOTOR   0x40000000
 
#define orxBODY_JOINT_DEF_KU32_FLAG_NONE   0x00000000
 
#define orxBODY_JOINT_DEF_KU32_FLAG_PRISMATIC   0x00000002
 
#define orxBODY_JOINT_DEF_KU32_FLAG_PULLEY   0x00000010
 
#define orxBODY_JOINT_DEF_KU32_FLAG_REVOLUTE   0x00000001
 
#define orxBODY_JOINT_DEF_KU32_FLAG_ROPE   0x00000008
 
#define orxBODY_JOINT_DEF_KU32_FLAG_ROTATION_LIMIT   0x20000000
 
#define orxBODY_JOINT_DEF_KU32_FLAG_SPRING   0x00000004
 
#define orxBODY_JOINT_DEF_KU32_FLAG_SUSPENSION   0x00000020
 
#define orxBODY_JOINT_DEF_KU32_FLAG_TRANSLATION_LIMIT   0x80000000
 
#define orxBODY_JOINT_DEF_KU32_FLAG_WELD   0x00000040
 
#define orxBODY_JOINT_DEF_KU32_MASK_ALL   0xFFFFFFFF
 
#define orxBODY_JOINT_DEF_KU32_MASK_TYPE   0x00000FFF
 
#define orxBODY_PART_DEF_KU32_FLAG_BOX   0x00000002
 
#define orxBODY_PART_DEF_KU32_FLAG_CHAIN   0x00000010
 
#define orxBODY_PART_DEF_KU32_FLAG_EDGE   0x00000008
 
#define orxBODY_PART_DEF_KU32_FLAG_MESH   0x00000004
 
#define orxBODY_PART_DEF_KU32_FLAG_NONE   0x00000000
 
#define orxBODY_PART_DEF_KU32_FLAG_SOLID   0x10000000
 
#define orxBODY_PART_DEF_KU32_FLAG_SPHERE   0x00000001
 
#define orxBODY_PART_DEF_KU32_MASK_ALL   0xFFFFFFFF
 
#define orxBODY_PART_DEF_KU32_MASK_TYPE   0x0000001F
 
#define orxBODY_PART_DEF_KU32_MESH_VERTEX_NUMBER   8
 
#define orxPHYSICS_KZ_CONFIG_ALLOW_SLEEP   "AllowSleep"
 
#define orxPHYSICS_KZ_CONFIG_COLLISION_FLAG_LIST   "CollisionFlagList"
 
#define orxPHYSICS_KZ_CONFIG_GRAVITY   "Gravity"
 
#define orxPHYSICS_KZ_CONFIG_INTERPOLATE   "Interpolate"
 
#define orxPHYSICS_KZ_CONFIG_ITERATIONS   "IterationsPerStep"
 
#define orxPHYSICS_KZ_CONFIG_RATIO   "DimensionRatio"
 
#define orxPHYSICS_KZ_CONFIG_SECTION   "Physics"
 
#define orxPHYSICS_KZ_CONFIG_SHOW_DEBUG   "ShowDebug"
 
#define orxPHYSICS_KZ_CONFIG_STEP_FREQUENCY   "StepFrequency"
 

Typedefs

typedef struct __orxPHYSICS_BODY_t orxPHYSICS_BODY
 
typedef struct __orxPHYSICS_BODY_JOINT_t orxPHYSICS_BODY_JOINT
 
typedef struct __orxPHYSICS_BODY_PART_t orxPHYSICS_BODY_PART
 

Enumerations

enum  orxPHYSICS_EVENT { orxPHYSICS_EVENT_CONTACT_ADD = 0, orxPHYSICS_EVENT_CONTACT_REMOVE, orxPHYSICS_EVENT_NUMBER, orxPHYSICS_EVENT_NONE = orxENUM_NONE }
 

Functions

orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyForce (orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvForce, const orxVECTOR *_pvPoint)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyImpulse (orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvImpulse, const orxVECTOR *_pvPoint)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyTorque (orxPHYSICS_BODY *_pstBody, orxFLOAT _fTorque)
 
orxDLLAPI orxU32 orxFASTCALL orxPhysics_BoxPick (const orxAABOX *_pstBox, orxU16 _u16SelfFlags, orxU16 _u16CheckMask, orxHANDLE _ahUserDataList[], orxU32 _u32Number)
 
orxDLLAPI orxPHYSICS_BODY *orxFASTCALL orxPhysics_CreateBody (const orxHANDLE _hUserData, const orxBODY_DEF *_pstBodyDef)
 
orxDLLAPI orxPHYSICS_BODY_JOINT *orxFASTCALL orxPhysics_CreateJoint (orxPHYSICS_BODY *_pstSrcBody, orxPHYSICS_BODY *_pstDstBody, const orxHANDLE _hUserData, const orxBODY_JOINT_DEF *_pstBodyJointDef)
 
orxDLLAPI orxPHYSICS_BODY_PART *orxFASTCALL orxPhysics_CreatePart (orxPHYSICS_BODY *_pstBody, const orxHANDLE _hUserData, const orxBODY_PART_DEF *_pstBodyPartDef)
 
orxDLLAPI void orxFASTCALL orxPhysics_DeleteBody (orxPHYSICS_BODY *_pstBody)
 
orxDLLAPI void orxFASTCALL orxPhysics_DeleteJoint (orxPHYSICS_BODY_JOINT *_pstBodyJoint)
 
orxDLLAPI void orxFASTCALL orxPhysics_DeletePart (orxPHYSICS_BODY_PART *_pstBodyPart)
 
orxDLLAPI void orxFASTCALL orxPhysics_EnableMotor (orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxBOOL _bEnable)
 
orxDLLAPI void orxFASTCALL orxPhysics_EnableSimulation (orxBOOL _bEnable)
 
orxDLLAPI void orxFASTCALL orxPhysics_Exit ()
 
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetAngularDamping (const orxPHYSICS_BODY *_pstBody)
 
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetAngularVelocity (const orxPHYSICS_BODY *_pstBody)
 
orxDLLAPI const orxSTRING orxFASTCALL orxPhysics_GetCollisionFlagName (orxU32 _u32Flag)
 
orxDLLAPI orxU32 orxFASTCALL orxPhysics_GetCollisionFlagValue (const orxSTRING _zFlag)
 
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetCustomGravity (const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvCustomGravity)
 
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetGravity (orxVECTOR *_pvGravity)
 
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetJointReactionForce (const orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxVECTOR *_pvForce)
 
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetJointReactionTorque (const orxPHYSICS_BODY_JOINT *_pstBodyJoint)
 
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetLinearDamping (const orxPHYSICS_BODY *_pstBody)
 
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetMass (const orxPHYSICS_BODY *_pstBody)
 
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetMassCenter (const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvMassCenter)
 
orxDLLAPI orxU16 orxFASTCALL orxPhysics_GetPartCheckMask (const orxPHYSICS_BODY_PART *_pstBodyPart)
 
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartDensity (const orxPHYSICS_BODY_PART *_pstBodyPart)
 
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartFriction (const orxPHYSICS_BODY_PART *_pstBodyPart)
 
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartRestitution (const orxPHYSICS_BODY_PART *_pstBodyPart)
 
orxDLLAPI orxU16 orxFASTCALL orxPhysics_GetPartSelfFlags (const orxPHYSICS_BODY_PART *_pstBodyPart)
 
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetPosition (const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvPosition)
 
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetRotation (const orxPHYSICS_BODY *_pstBody)
 
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetSpeed (const orxPHYSICS_BODY *_pstBody, orxVECTOR *_pvSpeed)
 
orxDLLAPI orxVECTOR *orxFASTCALL orxPhysics_GetSpeedAtWorldPosition (const orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvPosition, orxVECTOR *_pvSpeed)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_Init ()
 
orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsFixedRotation (const orxPHYSICS_BODY *_pstBody)
 
orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsInsidePart (const orxPHYSICS_BODY_PART *_pstBodyPart, const orxVECTOR *_pvPosition)
 
orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsPartSolid (const orxPHYSICS_BODY_PART *_pstBodyPart)
 
orxDLLAPI orxHANDLE orxFASTCALL orxPhysics_Raycast (const orxVECTOR *_pvBegin, const orxVECTOR *_pvEnd, orxU16 _u16SelfFlags, orxU16 _u16CheckMask, orxBOOL _bEarlyExit, orxVECTOR *_pvContact, orxVECTOR *_pvNormal)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAllowMoving (orxPHYSICS_BODY *_pstBody, orxBOOL _bAllowMoving)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAngularDamping (orxPHYSICS_BODY *_pstBody, orxFLOAT _fDamping)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAngularVelocity (orxPHYSICS_BODY *_pstBody, orxFLOAT _fVelocity)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetCustomGravity (orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvCustomGravity)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetDynamic (orxPHYSICS_BODY *_pstBody, orxBOOL _bDynamic)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetFixedRotation (orxPHYSICS_BODY *_pstBody, orxBOOL _bFixed)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetGravity (const orxVECTOR *_pvGravity)
 
orxDLLAPI void orxFASTCALL orxPhysics_SetJointMaxMotorTorque (orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxFLOAT _fMaxTorque)
 
orxDLLAPI void orxFASTCALL orxPhysics_SetJointMotorSpeed (orxPHYSICS_BODY_JOINT *_pstBodyJoint, orxFLOAT _fSpeed)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetLinearDamping (orxPHYSICS_BODY *_pstBody, orxFLOAT _fDamping)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartCheckMask (orxPHYSICS_BODY_PART *_pstBodyPart, orxU16 _u16CheckMask)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartDensity (orxPHYSICS_BODY_PART *_pstBodyPart, orxFLOAT _fDensity)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartFriction (orxPHYSICS_BODY_PART *_pstBodyPart, orxFLOAT _fFriction)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartRestitution (orxPHYSICS_BODY_PART *_pstBodyPart, orxFLOAT _fRestitution)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartSelfFlags (orxPHYSICS_BODY_PART *_pstBodyPart, orxU16 _u16SelfFlags)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartSolid (orxPHYSICS_BODY_PART *_pstBodyPart, orxBOOL _bSolid)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPosition (orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvPosition)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetRotation (orxPHYSICS_BODY *_pstBody, orxFLOAT _fRotation)
 
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetSpeed (orxPHYSICS_BODY *_pstBody, const orxVECTOR *_pvSpeed)
 
orxDLLAPI void orxFASTCALL orxPhysics_Setup ()
 

Detailed Description

Physics plugin module Module that handles physics interactions

Macro Definition Documentation

#define orxBODY_DEF_KU32_FLAG_2D   0x00000001

2D type body def flag

Definition at line 56 of file orxPhysics.h.

#define orxBODY_DEF_KU32_FLAG_ALLOW_SLEEP   0x00000020

Allow sleep body def flag

Definition at line 61 of file orxPhysics.h.

#define orxBODY_DEF_KU32_FLAG_CAN_MOVE   0x00000010

Static body is allowed to move through direct user access

Definition at line 60 of file orxPhysics.h.

#define orxBODY_DEF_KU32_FLAG_DYNAMIC   0x00000002

Dynamic type body def flag

Definition at line 57 of file orxPhysics.h.

#define orxBODY_DEF_KU32_FLAG_FIXED_ROTATION   0x00000008

Body can't be rotated by physics

Definition at line 59 of file orxPhysics.h.

#define orxBODY_DEF_KU32_FLAG_HIGH_SPEED   0x00000004

High speed type body def flag

Definition at line 58 of file orxPhysics.h.

#define orxBODY_DEF_KU32_FLAG_NONE   0x00000000

Body definition flagsNo flags

Definition at line 54 of file orxPhysics.h.

#define orxBODY_DEF_KU32_MASK_ALL   0xFFFFFFFF

Body def all mask

Definition at line 63 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_COLLIDE   0x10000000

Collide body joint def flag

Definition at line 97 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_FRICTION   0x00000080

Friction body joint def flag

Definition at line 92 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_GEAR   0x00000100

Gear body joint def flag

Definition at line 93 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_MOTOR   0x40000000

Motor body joint def flag

Definition at line 99 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_NONE   0x00000000

Body joint definition flagsNo flags

Definition at line 83 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_PRISMATIC   0x00000002

Prismatic body joint def flag

Definition at line 86 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_PULLEY   0x00000010

Pulley body joint def flag

Definition at line 89 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_REVOLUTE   0x00000001

Revolute body joint def flag

Definition at line 85 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_ROPE   0x00000008

Rope body joint def flag

Definition at line 88 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_ROTATION_LIMIT   0x20000000

Rotation limit body joint def flag

Definition at line 98 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_SPRING   0x00000004

Spring body joint def flag

Definition at line 87 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_SUSPENSION   0x00000020

Suspension body joint def flag

Definition at line 90 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_TRANSLATION_LIMIT   0x80000000

Translation limit def flag

Definition at line 100 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_FLAG_WELD   0x00000040

Weld body joint def flag

Definition at line 91 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_MASK_ALL   0xFFFFFFFF

Body joint def all mask

Definition at line 102 of file orxPhysics.h.

#define orxBODY_JOINT_DEF_KU32_MASK_TYPE   0x00000FFF

Type body joint def mask

Definition at line 95 of file orxPhysics.h.

#define orxBODY_PART_DEF_KU32_FLAG_BOX   0x00000002

Box body part def flag

Definition at line 70 of file orxPhysics.h.

#define orxBODY_PART_DEF_KU32_FLAG_CHAIN   0x00000010

Chain body part def flag

Definition at line 73 of file orxPhysics.h.

#define orxBODY_PART_DEF_KU32_FLAG_EDGE   0x00000008

Edge body part def flag

Definition at line 72 of file orxPhysics.h.

#define orxBODY_PART_DEF_KU32_FLAG_MESH   0x00000004

Mesh body part def flag

Definition at line 71 of file orxPhysics.h.

#define orxBODY_PART_DEF_KU32_FLAG_NONE   0x00000000

Body part definition flagsNo flags

Definition at line 67 of file orxPhysics.h.

#define orxBODY_PART_DEF_KU32_FLAG_SOLID   0x10000000

Solid body part def flag

Definition at line 77 of file orxPhysics.h.

#define orxBODY_PART_DEF_KU32_FLAG_SPHERE   0x00000001

Sphere body part def flag

Definition at line 69 of file orxPhysics.h.

#define orxBODY_PART_DEF_KU32_MASK_ALL   0xFFFFFFFF

Body part def all mask

Definition at line 79 of file orxPhysics.h.

#define orxBODY_PART_DEF_KU32_MASK_TYPE   0x0000001F

Type body part def mask

Definition at line 75 of file orxPhysics.h.

#define orxBODY_PART_DEF_KU32_MESH_VERTEX_NUMBER   8

Misc defines

Definition at line 107 of file orxPhysics.h.

#define orxPHYSICS_KZ_CONFIG_ALLOW_SLEEP   "AllowSleep"

Definition at line 319 of file orxPhysics.h.

#define orxPHYSICS_KZ_CONFIG_COLLISION_FLAG_LIST   "CollisionFlagList"

Definition at line 324 of file orxPhysics.h.

#define orxPHYSICS_KZ_CONFIG_GRAVITY   "Gravity"

Definition at line 318 of file orxPhysics.h.

#define orxPHYSICS_KZ_CONFIG_INTERPOLATE   "Interpolate"

Definition at line 325 of file orxPhysics.h.

#define orxPHYSICS_KZ_CONFIG_ITERATIONS   "IterationsPerStep"

Definition at line 320 of file orxPhysics.h.

#define orxPHYSICS_KZ_CONFIG_RATIO   "DimensionRatio"

Definition at line 321 of file orxPhysics.h.

#define orxPHYSICS_KZ_CONFIG_SECTION   "Physics"

Config defines

Definition at line 317 of file orxPhysics.h.

#define orxPHYSICS_KZ_CONFIG_SHOW_DEBUG   "ShowDebug"

Definition at line 323 of file orxPhysics.h.

#define orxPHYSICS_KZ_CONFIG_STEP_FREQUENCY   "StepFrequency"

Definition at line 322 of file orxPhysics.h.

Typedef Documentation

typedef struct __orxPHYSICS_BODY_t orxPHYSICS_BODY

Internal physics body structure

Definition at line 304 of file orxPhysics.h.

typedef struct __orxPHYSICS_BODY_JOINT_t orxPHYSICS_BODY_JOINT

Internal physics joint structure

Definition at line 312 of file orxPhysics.h.

typedef struct __orxPHYSICS_BODY_PART_t orxPHYSICS_BODY_PART

Internal physics part structure

Definition at line 308 of file orxPhysics.h.

Enumeration Type Documentation

Event enum

Enumerator
orxPHYSICS_EVENT_CONTACT_ADD 
orxPHYSICS_EVENT_CONTACT_REMOVE 
orxPHYSICS_EVENT_NUMBER 
orxPHYSICS_EVENT_NONE 

Definition at line 280 of file orxPhysics.h.

Function Documentation

orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyForce ( orxPHYSICS_BODY _pstBody,
const orxVECTOR _pvForce,
const orxVECTOR _pvPoint 
)

Applies a force to a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_pvForceForce to apply
[in]_pvPointPoint of application (world coordinates) (if null, center of mass will be used)
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyImpulse ( orxPHYSICS_BODY _pstBody,
const orxVECTOR _pvImpulse,
const orxVECTOR _pvPoint 
)

Applies an impulse to a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_pvImpulseImpulse to apply
[in]_pvPointPoint of application (world coordinates) (if null, center of mass will be used)
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_ApplyTorque ( orxPHYSICS_BODY _pstBody,
orxFLOAT  _fTorque 
)

Applies a torque to a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_fTorqueTorque to apply
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxU32 orxFASTCALL orxPhysics_BoxPick ( const orxAABOX _pstBox,
orxU16  _u16SelfFlags,
orxU16  _u16CheckMask,
orxHANDLE  _ahUserDataList[],
orxU32  _u32Number 
)

Picks bodies in contact with the given axis aligned box

Parameters
[in]_pstBoxBox used for picking
[in]_u16SelfFlagsSelfs flags used for filtering (0xFFFF for no filtering)
[in]_u16CheckMaskCheck mask used for filtering (0xFFFF for no filtering)
[in]_ahUserDataListList of user data to fill
[in]_u32NumberNumber of user data
Returns
Count of actual found bodies. It might be larger than the given array, in which case you'd need to pass a larger array to retrieve them all.
orxDLLAPI orxPHYSICS_BODY* orxFASTCALL orxPhysics_CreateBody ( const orxHANDLE  _hUserData,
const orxBODY_DEF _pstBodyDef 
)

Creates a physical body

Parameters
[in]_hUserDataUser data to associate with this physical body
[in]_pstBodyDefPhysical body definition
Returns
orxPHYSICS_BODY / orxNULL
orxDLLAPI orxPHYSICS_BODY_JOINT* orxFASTCALL orxPhysics_CreateJoint ( orxPHYSICS_BODY _pstSrcBody,
orxPHYSICS_BODY _pstDstBody,
const orxHANDLE  _hUserData,
const orxBODY_JOINT_DEF _pstBodyJointDef 
)

Creates a joint to link two physical bodies together

Parameters
[in]_pstSrcBodyConcerned source body
[in]_pstDstBodyConcerned destination body
[in]_hUserDataUser data to associate with this physical body part
[in]_pstBodyJointDefPhysical body joint definition
Returns
orxPHYSICS_BODY_JOINT / orxNULL
orxDLLAPI orxPHYSICS_BODY_PART* orxFASTCALL orxPhysics_CreatePart ( orxPHYSICS_BODY _pstBody,
const orxHANDLE  _hUserData,
const orxBODY_PART_DEF _pstBodyPartDef 
)

Creates a part for a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_hUserDataUser data to associate with this physical body part
[in]_pstBodyPartDefPhysical body part definition
Returns
orxPHYSICS_BODY_PART / orxNULL
orxDLLAPI void orxFASTCALL orxPhysics_DeleteBody ( orxPHYSICS_BODY _pstBody)

Deletes a physical body

Parameters
[in]_pstBodyConcerned physical body
orxDLLAPI void orxFASTCALL orxPhysics_DeleteJoint ( orxPHYSICS_BODY_JOINT _pstBodyJoint)

Deletes a physical body joint

Parameters
[in]_pstBodyJointConcerned physical body joint
orxDLLAPI void orxFASTCALL orxPhysics_DeletePart ( orxPHYSICS_BODY_PART _pstBodyPart)

Deletes a physical body part

Parameters
[in]_pstBodyPartConcerned physical body part
orxDLLAPI void orxFASTCALL orxPhysics_EnableMotor ( orxPHYSICS_BODY_JOINT _pstBodyJoint,
orxBOOL  _bEnable 
)

Enables a (revolute) body joint motor

Parameters
[in]_pstBodyJointConcerned body joint
[in]_bEnableEnable / Disable
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI void orxFASTCALL orxPhysics_EnableSimulation ( orxBOOL  _bEnable)

Enables/disables physics simulation

Parameters
[in]_bEnableEnable / disable
orxDLLAPI void orxFASTCALL orxPhysics_Exit ( )

Exits from the physics module

orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetAngularDamping ( const orxPHYSICS_BODY _pstBody)

Gets angular damping of a physical body

Parameters
[in]_pstBodyConcerned physical body
Returns
Angular damping of the physical body
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetAngularVelocity ( const orxPHYSICS_BODY _pstBody)

Gets the angular velocity of a physical body

Parameters
[in]_pstBodyConcerned physical body
Returns
Angular velocity (radians/seconds) of the physical body
orxDLLAPI const orxSTRING orxFASTCALL orxPhysics_GetCollisionFlagName ( orxU32  _u32Flag)

Gets collision flag literal name

Parameters
[in]_u32FlagConcerned collision flag numerical value
Returns
Flag's name
orxDLLAPI orxU32 orxFASTCALL orxPhysics_GetCollisionFlagValue ( const orxSTRING  _zFlag)

Gets collision flag numerical value

Parameters
[in]_zFlagConcerned collision flag literal name
Returns
Flag's value
orxDLLAPI orxVECTOR* orxFASTCALL orxPhysics_GetCustomGravity ( const orxPHYSICS_BODY _pstBody,
orxVECTOR _pvCustomGravity 
)

Gets the custom gravity of a physical body

Parameters
[in]_pstBodyConcerned physical body
[out]_pvCustomGravityCustom gravity to get
Returns
Physical body custom gravity / orxNULL is object doesn't have any
orxDLLAPI orxVECTOR* orxFASTCALL orxPhysics_GetGravity ( orxVECTOR _pvGravity)

Gets physics gravity

Parameters
[in]_pvGravityGravity to get
Returns
orxVECTOR / orxNULL
orxDLLAPI orxVECTOR* orxFASTCALL orxPhysics_GetJointReactionForce ( const orxPHYSICS_BODY_JOINT _pstBodyJoint,
orxVECTOR _pvForce 
)

Gets the reaction force on the attached body at the joint anchor

Parameters
[in]_pstBodyJointConcerned body joint
[out]_pvForceReaction force
Returns
Reaction force in Newtons
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetJointReactionTorque ( const orxPHYSICS_BODY_JOINT _pstBodyJoint)

Gets the reaction torque on the attached body

Parameters
[in]_pstBodyJointConcerned body joint
Returns
Reaction torque
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetLinearDamping ( const orxPHYSICS_BODY _pstBody)

Gets linear damping of a physical body

Parameters
[in]_pstBodyConcerned physical body
Returns
Linear damping of the physical body
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetMass ( const orxPHYSICS_BODY _pstBody)

Gets the mass of a physical body

Parameters
[in]_pstBodyConcerned physical body
Returns
Mass of the physical body
orxDLLAPI orxVECTOR* orxFASTCALL orxPhysics_GetMassCenter ( const orxPHYSICS_BODY _pstBody,
orxVECTOR _pvMassCenter 
)

Gets the center of mass of a physical body (object space but scale isn't accounted for)

Parameters
[in]_pstBodyConcerned physical body
[out]_pvMassCenterCenter of mass to get
Returns
Center of mass of the physical body
orxDLLAPI orxU16 orxFASTCALL orxPhysics_GetPartCheckMask ( const orxPHYSICS_BODY_PART _pstBodyPart)

Gets check mask of a physical body part

Parameters
[in]_pstBodyPartConcerned physical body part
Returns
Check mask of the physical body part
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartDensity ( const orxPHYSICS_BODY_PART _pstBodyPart)

Gets density of a physical body part

Parameters
[in]_pstBodyPartConcerned physical body part
Returns
Density
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartFriction ( const orxPHYSICS_BODY_PART _pstBodyPart)

Gets friction of a physical body part

Parameters
[in]_pstBodyPartConcerned physical body part
Returns
Friction
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetPartRestitution ( const orxPHYSICS_BODY_PART _pstBodyPart)

Gets restitution of a physical body part

Parameters
[in]_pstBodyPartConcerned physical body part
Returns
Restitution
orxDLLAPI orxU16 orxFASTCALL orxPhysics_GetPartSelfFlags ( const orxPHYSICS_BODY_PART _pstBodyPart)

Gets self flags of a physical body part

Parameters
[in]_pstBodyPartConcerned physical body part
Returns
Self flags of the physical body part
orxDLLAPI orxVECTOR* orxFASTCALL orxPhysics_GetPosition ( const orxPHYSICS_BODY _pstBody,
orxVECTOR _pvPosition 
)

Gets the position of a physical body

Parameters
[in]_pstBodyConcerned physical body
[out]_pvPositionPosition to get
Returns
Position of the physical body
orxDLLAPI orxFLOAT orxFASTCALL orxPhysics_GetRotation ( const orxPHYSICS_BODY _pstBody)

Gets the rotation of a physical body

Parameters
[in]_pstBodyConcerned physical body
Returns
Rotation (radians) of the physical body
orxDLLAPI orxVECTOR* orxFASTCALL orxPhysics_GetSpeed ( const orxPHYSICS_BODY _pstBody,
orxVECTOR _pvSpeed 
)

Gets the speed of a physical body

Parameters
[in]_pstBodyConcerned physical body
[out]_pvSpeedSpeed to get
Returns
Speed of the physical body
orxDLLAPI orxVECTOR* orxFASTCALL orxPhysics_GetSpeedAtWorldPosition ( const orxPHYSICS_BODY _pstBody,
const orxVECTOR _pvPosition,
orxVECTOR _pvSpeed 
)

Gets the speed of a physical body at a specified world position

Parameters
[in]_pstBodyConcerned body
[in]_pvPositionConcerned world position
[out]_pvSpeedSpeed to get
Returns
Speed of the physical body
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_Init ( )

Inits the physics module

Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsFixedRotation ( const orxPHYSICS_BODY _pstBody)

Is a physical body using a fixed rotation

Parameters
[in]_pstBodyConcerned physical body
Returns
orxTRUE if fixed rotation, orxFALSE otherwise
orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsInsidePart ( const orxPHYSICS_BODY_PART _pstBodyPart,
const orxVECTOR _pvPosition 
)

Is point inside part? (Using world coordinates)

Parameters
[in]_pstBodyPartConcerned physical body part
[in]_pvPositionPosition to test (world coordinates)
Returns
orxTRUE / orxFALSE
orxDLLAPI orxBOOL orxFASTCALL orxPhysics_IsPartSolid ( const orxPHYSICS_BODY_PART _pstBodyPart)

Is a physical body part solid?

Parameters
[in]_pstBodyPartConcerned physical body part
Returns
orxTRUE / orxFALSE
orxDLLAPI orxHANDLE orxFASTCALL orxPhysics_Raycast ( const orxVECTOR _pvBegin,
const orxVECTOR _pvEnd,
orxU16  _u16SelfFlags,
orxU16  _u16CheckMask,
orxBOOL  _bEarlyExit,
orxVECTOR _pvContact,
orxVECTOR _pvNormal 
)

Issues a raycast to test for potential physics bodies in the way

Parameters
[in]_pvBeginBeginning of raycast
[in]_pvEndEnd of raycast
[in]_u16SelfFlagsSelfs flags used for filtering (0xFFFF for no filtering)
[in]_u16CheckMaskCheck mask used for filtering (0xFFFF for no filtering)
[in]_bEarlyExitShould stop as soon as an object has been hit (which might not be the closest)
[in]_pvContactIf non-null and a contact is found it will be stored here
[in]_pvNormalIf non-null and a contact is found, its normal will be stored here
Returns
Colliding body's user data / orxHANDLE_UNDEFINED
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAllowMoving ( orxPHYSICS_BODY _pstBody,
orxBOOL  _bAllowMoving 
)

Sets the "allow moving" property of a body

Parameters
[in]_pstBodyConcerned physical body
[in]_bAllowMovingOnly used for non-dynamic bodies, Kinematic / Static
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAngularDamping ( orxPHYSICS_BODY _pstBody,
orxFLOAT  _fDamping 
)

Sets angular damping of a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_fDampingAngular damping to set
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetAngularVelocity ( orxPHYSICS_BODY _pstBody,
orxFLOAT  _fVelocity 
)

Sets the angular velocity of a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_fVelocityAngular velocity (radians/seconds) to set
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetCustomGravity ( orxPHYSICS_BODY _pstBody,
const orxVECTOR _pvCustomGravity 
)

Sets the custom gravity of a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_pvCustomGravityCustom gravity multiplier to set / orxNULL to remove it
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetDynamic ( orxPHYSICS_BODY _pstBody,
orxBOOL  _bDynamic 
)

Sets the dynamic property of a body

Parameters
[in]_pstBodyConcerned physical body
[in]_bDynamicDynamic / Static (or Kinematic depending on the "allow moving" property)
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetFixedRotation ( orxPHYSICS_BODY _pstBody,
orxBOOL  _bFixed 
)

Sets the fixed rotation property of a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_bFixedFixed / not fixed
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetGravity ( const orxVECTOR _pvGravity)

Sets physics gravity

Parameters
[in]_pvGravityGravity to set
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI void orxFASTCALL orxPhysics_SetJointMaxMotorTorque ( orxPHYSICS_BODY_JOINT _pstBodyJoint,
orxFLOAT  _fMaxTorque 
)

Sets a (revolute) body joint maximum motor torque

Parameters
[in]_pstBodyJointConcerned body joint
[in]_fMaxTorqueMaximum motor torque
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI void orxFASTCALL orxPhysics_SetJointMotorSpeed ( orxPHYSICS_BODY_JOINT _pstBodyJoint,
orxFLOAT  _fSpeed 
)

Sets a (revolute) body joint motor speed

Parameters
[in]_pstBodyJointConcerned body joint
[in]_fSpeedSpeed
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetLinearDamping ( orxPHYSICS_BODY _pstBody,
orxFLOAT  _fDamping 
)

Sets linear damping of a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_fDampingLinear damping to set
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartCheckMask ( orxPHYSICS_BODY_PART _pstBodyPart,
orxU16  _u16CheckMask 
)

Sets check mask of a physical body part

Parameters
[in]_pstBodyPartConcerned physical body part
[in]_u16CheckMaskCheck mask to set
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartDensity ( orxPHYSICS_BODY_PART _pstBodyPart,
orxFLOAT  _fDensity 
)

Sets density of a physical body part

Parameters
[in]_pstBodyPartConcerned physical body part
[in]_fDensityDensity
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartFriction ( orxPHYSICS_BODY_PART _pstBodyPart,
orxFLOAT  _fFriction 
)

Sets friction of a physical body part

Parameters
[in]_pstBodyPartConcerned physical body part
[in]_fFrictionFriction
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartRestitution ( orxPHYSICS_BODY_PART _pstBodyPart,
orxFLOAT  _fRestitution 
)

Sets restitution of a physical body part

Parameters
[in]_pstBodyPartConcerned physical body part
[in]_fRestitutionRestitution
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartSelfFlags ( orxPHYSICS_BODY_PART _pstBodyPart,
orxU16  _u16SelfFlags 
)

Sets self flags of a physical body part

Parameters
[in]_pstBodyPartConcerned physical body part
[in]_u16SelfFlagsSelf flags to set
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPartSolid ( orxPHYSICS_BODY_PART _pstBodyPart,
orxBOOL  _bSolid 
)

Sets a physical body part solid

Parameters
[in]_pstBodyPartConcerned physical body part
[in]_bSolidSolid or sensor?
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetPosition ( orxPHYSICS_BODY _pstBody,
const orxVECTOR _pvPosition 
)

Sets the position of a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_pvPositionPosition to set
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetRotation ( orxPHYSICS_BODY _pstBody,
orxFLOAT  _fRotation 
)

Sets the rotation of a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_fRotationRotation (radians) to set
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI orxSTATUS orxFASTCALL orxPhysics_SetSpeed ( orxPHYSICS_BODY _pstBody,
const orxVECTOR _pvSpeed 
)

Sets the speed of a physical body

Parameters
[in]_pstBodyConcerned physical body
[in]_pvSpeedSpeed to set
Returns
orxSTATUS_SUCCESS / orxSTATUS_FAILURE
orxDLLAPI void orxFASTCALL orxPhysics_Setup ( )

Physics module setup


Generated for orx by doxygen 1.8.11