Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00046 #ifndef _orxBODY_H_
00047 #define _orxBODY_H_
00048
00049 #include "orxInclude.h"
00050
00051 #include "object/orxStructure.h"
00052 #include "physics/orxPhysics.h"
00053
00054
00057 typedef struct __orxBODY_t orxBODY;
00058
00061 typedef struct __orxBODY_PART_t orxBODY_PART;
00062
00065 typedef struct __orxBODY_JOINT_t orxBODY_JOINT;
00066
00067
00070 extern orxDLLAPI void orxFASTCALL orxBody_Setup();
00071
00074 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_Init();
00075
00078 extern orxDLLAPI void orxFASTCALL orxBody_Exit();
00079
00080
00086 extern orxDLLAPI orxBODY *orxFASTCALL orxBody_Create(const orxSTRUCTURE *_pstOwner, const orxBODY_DEF *_pstBodyDef);
00087
00093 extern orxDLLAPI orxBODY *orxFASTCALL orxBody_CreateFromConfig(const orxSTRUCTURE *_pstOwner, const orxSTRING _zConfigID);
00094
00099 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_Delete(orxBODY *_pstBody);
00100
00101
00107 extern orxDLLAPI orxBOOL orxFASTCALL orxBody_TestDefFlags(const orxBODY *_pstBody, orxU32 _u32Flags);
00108
00114 extern orxDLLAPI orxBOOL orxFASTCALL orxBody_TestAllDefFlags(const orxBODY *_pstBody, orxU32 _u32Flags);
00115
00121 extern orxDLLAPI orxU32 orxFASTCALL orxBody_GetDefFlags(const orxBODY *_pstBody, orxU32 _u32Mask);
00122
00123
00128 extern orxDLLAPI orxSTRUCTURE *orxFASTCALL orxBody_GetOwner(const orxBODY *_pstBody);
00129
00135 extern orxDLLAPI orxBODY_PART *orxFASTCALL orxBody_AddPart(orxBODY *_pstBody, const orxBODY_PART_DEF *_pstBodyPartDef);
00136
00142 extern orxDLLAPI orxBODY_PART *orxFASTCALL orxBody_AddPartFromConfig(orxBODY *_pstBody, const orxSTRING _zConfigID);
00143
00149 extern orxDLLAPI orxBODY_PART *orxFASTCALL orxBody_GetNextPart(const orxBODY *_pstBody, const orxBODY_PART *_pstBodyPart);
00150
00155 extern orxDLLAPI const orxSTRING orxFASTCALL orxBody_GetPartName(const orxBODY_PART *_pstBodyPart);
00156
00161 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_RemovePart(orxBODY_PART *_pstBodyPart);
00162
00163
00170 extern orxDLLAPI orxBODY_JOINT *orxFASTCALL orxBody_AddJoint(orxBODY *_pstSrcBody, orxBODY *_pstDstBody, const orxBODY_JOINT_DEF *_pstBodyJointDef);
00171
00178 extern orxDLLAPI orxBODY_JOINT *orxFASTCALL orxBody_AddJointFromConfig(orxBODY *_pstSrcBody, orxBODY *_pstDstBody, const orxSTRING _zConfigID);
00179
00185 extern orxDLLAPI orxBODY_JOINT *orxFASTCALL orxBody_GetNextJoint(const orxBODY *_pstBody, const orxBODY_JOINT *_pstBodyJoint);
00186
00191 extern orxDLLAPI const orxSTRING orxFASTCALL orxBody_GetJointName(const orxBODY_JOINT *_pstBodyJoint);
00192
00197 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_RemoveJoint(orxBODY_JOINT *_pstBodyJoint);
00198
00199
00205 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPosition(orxBODY *_pstBody, const orxVECTOR *_pvPosition);
00206
00212 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetRotation(orxBODY *_pstBody, orxFLOAT _fRotation);
00213
00219 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetScale(orxBODY *_pstBody, const orxVECTOR *_pvScale);
00220
00226 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetSpeed(orxBODY *_pstBody, const orxVECTOR *_pvSpeed);
00227
00233 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetAngularVelocity(orxBODY *_pstBody, orxFLOAT _fVelocity);
00234
00240 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetCustomGravity(orxBODY *_pstBody, const orxVECTOR *_pvCustomGravity);
00241
00247 extern orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetPosition(const orxBODY *_pstBody, orxVECTOR *_pvPosition);
00248
00253 extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetRotation(const orxBODY *_pstBody);
00254
00260 extern orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetSpeed(const orxBODY *_pstBody, orxVECTOR *_pvSpeed);
00261
00266 extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetAngularVelocity(const orxBODY *_pstBody);
00267
00273 extern orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetCustomGravity(const orxBODY *_pstBody, orxVECTOR *_pvCustomGravity);
00274
00279 extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetMass(const orxBODY *_pstBody);
00280
00286 extern orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetMassCenter(const orxBODY *_pstBody, orxVECTOR *_pvMassCenter);
00287
00288
00294 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetLinearDamping(orxBODY *_pstBody, orxFLOAT _fDamping);
00295
00301 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetAngularDamping(orxBODY *_pstBody, orxFLOAT _fDamping);
00302
00307 extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetLinearDamping(const orxBODY *_pstBody);
00308
00313 extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetAngularDamping(const orxBODY *_pstBody);
00314
00315
00321 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_ApplyTorque(orxBODY *_pstBody, orxFLOAT _fTorque);
00322
00329 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_ApplyForce(orxBODY *_pstBody, const orxVECTOR *_pvForce, const orxVECTOR *_pvPoint);
00330
00337 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_ApplyImpulse(orxBODY *_pstBody, const orxVECTOR *_pvImpulse, const orxVECTOR *_pvPoint);
00338
00339
00345 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetSelfFlags(orxBODY_PART *_pstBodyPart, orxU16 _u16SelfFlags);
00346
00352 extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetCheckMask(orxBODY_PART *_pstBodyPart, orxU16 _u16CheckMask);
00353
00358 extern orxDLLAPI orxU16 orxFASTCALL orxBody_GetSelfFlags(const orxBODY_PART *_pstBodyPart);
00359
00364 extern orxDLLAPI orxU16 orxFASTCALL orxBody_GetCheckMask(const orxBODY_PART *_pstBodyPart);
00365
00366
00377 extern orxDLLAPI orxBODY *orxFASTCALL orxBody_Raycast(const orxVECTOR *_pvStart, const orxVECTOR *_pvEnd, orxU16 _u16SelfFlags, orxU16 _u16CheckMask, orxBOOL _bEarlyExit, orxVECTOR *_pvContact, orxVECTOR *_pvNormal);
00378
00379
00384 extern orxDLLAPI void orxFASTCALL orxBody_ApplySimulationResult(orxBODY *_pstBody);
00385
00386 #endif
00387