orx 1.16
Portable Game Engine
Loading...
Searching...
No Matches
orxBody.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
44
45
46#ifndef _orxBODY_H_
47#define _orxBODY_H_
48
49#include "orxInclude.h"
50
51#include "object/orxStructure.h"
52#include "physics/orxPhysics.h"
53
54
57typedef struct __orxBODY_t orxBODY;
58
61typedef struct __orxBODY_PART_t orxBODY_PART;
62
65typedef struct __orxBODY_JOINT_t orxBODY_JOINT;
66
67
70extern orxDLLAPI void orxFASTCALL orxBody_Setup();
71
74extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_Init();
75
78extern orxDLLAPI void orxFASTCALL orxBody_Exit();
79
80
86extern orxDLLAPI orxBODY *orxFASTCALL orxBody_Create(const orxSTRUCTURE *_pstOwner, const orxBODY_DEF *_pstBodyDef);
87
93extern orxDLLAPI orxBODY *orxFASTCALL orxBody_CreateFromConfig(const orxSTRUCTURE *_pstOwner, const orxSTRING _zConfigID);
94
99extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_Delete(orxBODY *_pstBody);
100
105extern orxDLLAPI const orxSTRING orxFASTCALL orxBody_GetName(const orxBODY *_pstBody);
106
107
113extern orxDLLAPI orxBOOL orxFASTCALL orxBody_TestDefFlags(const orxBODY *_pstBody, orxU32 _u32Flags);
114
120extern orxDLLAPI orxBOOL orxFASTCALL orxBody_TestAllDefFlags(const orxBODY *_pstBody, orxU32 _u32Flags);
121
127extern orxDLLAPI orxU32 orxFASTCALL orxBody_GetDefFlags(const orxBODY *_pstBody, orxU32 _u32Mask);
128
129
135extern orxDLLAPI orxBODY_PART *orxFASTCALL orxBody_AddPart(orxBODY *_pstBody, const orxBODY_PART_DEF *_pstBodyPartDef);
136
142extern orxDLLAPI orxBODY_PART *orxFASTCALL orxBody_AddPartFromConfig(orxBODY *_pstBody, const orxSTRING _zConfigID);
143
149extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_RemovePartFromConfig(orxBODY *_pstBody, const orxSTRING _zConfigID);
150
156extern orxDLLAPI orxBODY_PART *orxFASTCALL orxBody_GetNextPart(const orxBODY *_pstBody, const orxBODY_PART *_pstBodyPart);
157
162extern orxDLLAPI const orxSTRING orxFASTCALL orxBody_GetPartName(const orxBODY_PART *_pstBodyPart);
163
168extern orxDLLAPI const orxBODY_PART_DEF *orxFASTCALL orxBody_GetPartDef(const orxBODY_PART *_pstBodyPart);
169
174extern orxDLLAPI orxBODY *orxFASTCALL orxBody_GetPartBody(const orxBODY_PART *_pstBodyPart);
175
180extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_RemovePart(orxBODY_PART *_pstBodyPart);
181
182
189extern orxDLLAPI orxBODY_JOINT *orxFASTCALL orxBody_AddJoint(orxBODY *_pstSrcBody, orxBODY *_pstDstBody, const orxBODY_JOINT_DEF *_pstBodyJointDef);
190
197extern orxDLLAPI orxBODY_JOINT *orxFASTCALL orxBody_AddJointFromConfig(orxBODY *_pstSrcBody, orxBODY *_pstDstBody, const orxSTRING _zConfigID);
198
204extern orxDLLAPI orxBODY_JOINT *orxFASTCALL orxBody_GetNextJoint(const orxBODY *_pstBody, const orxBODY_JOINT *_pstBodyJoint);
205
210extern orxDLLAPI const orxSTRING orxFASTCALL orxBody_GetJointName(const orxBODY_JOINT *_pstBodyJoint);
211
216extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_RemoveJoint(orxBODY_JOINT *_pstBodyJoint);
217
218
224extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPosition(orxBODY *_pstBody, const orxVECTOR *_pvPosition);
225
231extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetRotation(orxBODY *_pstBody, orxFLOAT _fRotation);
232
238extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetScale(orxBODY *_pstBody, const orxVECTOR *_pvScale);
239
245extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetSpeed(orxBODY *_pstBody, const orxVECTOR *_pvSpeed);
246
252extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetAngularVelocity(orxBODY *_pstBody, orxFLOAT _fVelocity);
253
259extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetCustomGravity(orxBODY *_pstBody, const orxVECTOR *_pvCustomGravity);
260
266extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetFixedRotation(orxBODY *_pstBody, orxBOOL _bFixed);
267
273extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetDynamic(orxBODY *_pstBody, orxBOOL _bDynamic);
274
280extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetAllowMoving(orxBODY *_pstBody, orxBOOL _bAllowMoving);
281
287extern orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetPosition(const orxBODY *_pstBody, orxVECTOR *_pvPosition);
288
293extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetRotation(const orxBODY *_pstBody);
294
300extern orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetSpeed(const orxBODY *_pstBody, orxVECTOR *_pvSpeed);
301
308extern orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetSpeedAtWorldPosition(const orxBODY *_pstBody, const orxVECTOR *_pvPosition, orxVECTOR *_pvSpeed);
309
314extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetAngularVelocity(const orxBODY *_pstBody);
315
321extern orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetCustomGravity(const orxBODY *_pstBody, orxVECTOR *_pvCustomGravity);
322
327extern orxDLLAPI orxBOOL orxFASTCALL orxBody_IsFixedRotation(const orxBODY *_pstBody);
328
333extern orxDLLAPI orxBOOL orxFASTCALL orxBody_IsDynamic(const orxBODY *_pstBody);
334
339extern orxDLLAPI orxBOOL orxFASTCALL orxBody_GetAllowMoving(const orxBODY *_pstBody);
340
345extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetMass(const orxBODY *_pstBody);
346
352extern orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetMassCenter(const orxBODY *_pstBody, orxVECTOR *_pvMassCenter);
353
354
360extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetLinearDamping(orxBODY *_pstBody, orxFLOAT _fDamping);
361
367extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetAngularDamping(orxBODY *_pstBody, orxFLOAT _fDamping);
368
373extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetLinearDamping(const orxBODY *_pstBody);
374
379extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetAngularDamping(const orxBODY *_pstBody);
380
386extern orxDLLAPI orxBOOL orxFASTCALL orxBody_IsInside(const orxBODY *_pstBody, const orxVECTOR *_pvPosition);
387
388
394extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_ApplyTorque(orxBODY *_pstBody, orxFLOAT _fTorque);
395
402extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_ApplyForce(orxBODY *_pstBody, const orxVECTOR *_pvForce, const orxVECTOR *_pvPoint);
403
410extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_ApplyImpulse(orxBODY *_pstBody, const orxVECTOR *_pvImpulse, const orxVECTOR *_pvPoint);
411
412
418extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartSelfFlags(orxBODY_PART *_pstBodyPart, orxU16 _u16SelfFlags);
419
425extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartCheckMask(orxBODY_PART *_pstBodyPart, orxU16 _u16CheckMask);
426
431extern orxDLLAPI orxU16 orxFASTCALL orxBody_GetPartSelfFlags(const orxBODY_PART *_pstBodyPart);
432
437extern orxDLLAPI orxU16 orxFASTCALL orxBody_GetPartCheckMask(const orxBODY_PART *_pstBodyPart);
438
444extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartSolid(orxBODY_PART *_pstBodyPart, orxBOOL _bSolid);
445
450extern orxDLLAPI orxBOOL orxFASTCALL orxBody_IsPartSolid(const orxBODY_PART *_pstBodyPart);
451
457extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartFriction(orxBODY_PART *_pstBodyPart, orxFLOAT _fFriction);
458
463extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetPartFriction(const orxBODY_PART *_pstBodyPart);
464
470extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartRestitution(orxBODY_PART *_pstBodyPart, orxFLOAT _fRestitution);
471
476extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetPartRestitution(const orxBODY_PART *_pstBodyPart);
477
483extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartDensity(orxBODY_PART *_pstBodyPart, orxFLOAT _fDensity);
484
489extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetPartDensity(const orxBODY_PART *_pstBodyPart);
490
496extern orxDLLAPI orxBOOL orxFASTCALL orxBody_IsInsidePart(const orxBODY_PART *_pstBodyPart, const orxVECTOR *_pvPosition);
497
498
504extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_EnableMotor(orxBODY_JOINT *_pstBodyJoint, orxBOOL _bEnable);
505
511extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetJointMotorSpeed(orxBODY_JOINT *_pstBodyJoint, orxFLOAT _fSpeed);
512
518extern orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetJointMaxMotorTorque(orxBODY_JOINT *_pstBodyJoint, orxFLOAT _fMaxTorque);
519
520
526extern orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetJointReactionForce(const orxBODY_JOINT *_pstBodyJoint, orxVECTOR *_pvForce);
527
532extern orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetJointReactionTorque(const orxBODY_JOINT *_pstBodyJoint);
533
534
545extern orxDLLAPI orxBODY *orxFASTCALL orxBody_Raycast(const orxVECTOR *_pvBegin, const orxVECTOR *_pvEnd, orxU16 _u16SelfFlags, orxU16 _u16CheckMask, orxBOOL _bEarlyExit, orxVECTOR *_pvContact, orxVECTOR *_pvNormal);
546
547
556extern orxDLLAPI orxU32 orxFASTCALL orxBody_BoxPick(const orxAABOX *_pstBox, orxU16 _u16SelfFlags, orxU16 _u16CheckMask, orxBODY *_apstBodyList[], orxU32 _u32Number);
557
558
559#endif /* _orxBODY_H_ */
560
orxDLLAPI orxSTATUS orxFASTCALL orxBody_Init()
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartCheckMask(orxBODY_PART *_pstBodyPart, orxU16 _u16CheckMask)
orxDLLAPI const orxSTRING orxFASTCALL orxBody_GetPartName(const orxBODY_PART *_pstBodyPart)
orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetPartFriction(const orxBODY_PART *_pstBodyPart)
orxDLLAPI void orxFASTCALL orxBody_Exit()
orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetRotation(const orxBODY *_pstBody)
orxDLLAPI orxBODY *orxFASTCALL orxBody_GetPartBody(const orxBODY_PART *_pstBodyPart)
orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetCustomGravity(const orxBODY *_pstBody, orxVECTOR *_pvCustomGravity)
struct __orxBODY_PART_t orxBODY_PART
Definition orxBody.h:61
orxDLLAPI orxBODY_PART *orxFASTCALL orxBody_AddPart(orxBODY *_pstBody, const orxBODY_PART_DEF *_pstBodyPartDef)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetAngularVelocity(orxBODY *_pstBody, orxFLOAT _fVelocity)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetSpeed(orxBODY *_pstBody, const orxVECTOR *_pvSpeed)
orxDLLAPI orxBOOL orxFASTCALL orxBody_TestDefFlags(const orxBODY *_pstBody, orxU32 _u32Flags)
orxDLLAPI orxU16 orxFASTCALL orxBody_GetPartCheckMask(const orxBODY_PART *_pstBodyPart)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetJointMotorSpeed(orxBODY_JOINT *_pstBodyJoint, orxFLOAT _fSpeed)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetLinearDamping(orxBODY *_pstBody, orxFLOAT _fDamping)
orxDLLAPI const orxSTRING orxFASTCALL orxBody_GetName(const orxBODY *_pstBody)
orxDLLAPI orxBOOL orxFASTCALL orxBody_IsInsidePart(const orxBODY_PART *_pstBodyPart, const orxVECTOR *_pvPosition)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetFixedRotation(orxBODY *_pstBody, orxBOOL _bFixed)
orxDLLAPI orxBODY *orxFASTCALL orxBody_Create(const orxSTRUCTURE *_pstOwner, const orxBODY_DEF *_pstBodyDef)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetRotation(orxBODY *_pstBody, orxFLOAT _fRotation)
orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetJointReactionTorque(const orxBODY_JOINT *_pstBodyJoint)
orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetPosition(const orxBODY *_pstBody, orxVECTOR *_pvPosition)
orxDLLAPI orxBODY_PART *orxFASTCALL orxBody_GetNextPart(const orxBODY *_pstBody, const orxBODY_PART *_pstBodyPart)
orxDLLAPI orxBOOL orxFASTCALL orxBody_IsDynamic(const orxBODY *_pstBody)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_EnableMotor(orxBODY_JOINT *_pstBodyJoint, orxBOOL _bEnable)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetAllowMoving(orxBODY *_pstBody, orxBOOL _bAllowMoving)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetDynamic(orxBODY *_pstBody, orxBOOL _bDynamic)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartDensity(orxBODY_PART *_pstBodyPart, orxFLOAT _fDensity)
orxDLLAPI void orxFASTCALL orxBody_Setup()
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartSolid(orxBODY_PART *_pstBodyPart, orxBOOL _bSolid)
struct __orxBODY_JOINT_t orxBODY_JOINT
Definition orxBody.h:65
orxDLLAPI const orxBODY_PART_DEF *orxFASTCALL orxBody_GetPartDef(const orxBODY_PART *_pstBodyPart)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_RemoveJoint(orxBODY_JOINT *_pstBodyJoint)
orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetLinearDamping(const orxBODY *_pstBody)
orxDLLAPI orxU16 orxFASTCALL orxBody_GetPartSelfFlags(const orxBODY_PART *_pstBodyPart)
orxDLLAPI const orxSTRING orxFASTCALL orxBody_GetJointName(const orxBODY_JOINT *_pstBodyJoint)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_ApplyImpulse(orxBODY *_pstBody, const orxVECTOR *_pvImpulse, const orxVECTOR *_pvPoint)
orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetSpeed(const orxBODY *_pstBody, orxVECTOR *_pvSpeed)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetCustomGravity(orxBODY *_pstBody, const orxVECTOR *_pvCustomGravity)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartRestitution(orxBODY_PART *_pstBodyPart, orxFLOAT _fRestitution)
orxDLLAPI orxBOOL orxFASTCALL orxBody_TestAllDefFlags(const orxBODY *_pstBody, orxU32 _u32Flags)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetAngularDamping(orxBODY *_pstBody, orxFLOAT _fDamping)
orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetSpeedAtWorldPosition(const orxBODY *_pstBody, const orxVECTOR *_pvPosition, orxVECTOR *_pvSpeed)
orxDLLAPI orxBODY_JOINT *orxFASTCALL orxBody_AddJointFromConfig(orxBODY *_pstSrcBody, orxBODY *_pstDstBody, const orxSTRING _zConfigID)
orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetMass(const orxBODY *_pstBody)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_ApplyForce(orxBODY *_pstBody, const orxVECTOR *_pvForce, const orxVECTOR *_pvPoint)
orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetAngularVelocity(const orxBODY *_pstBody)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_Delete(orxBODY *_pstBody)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartFriction(orxBODY_PART *_pstBodyPart, orxFLOAT _fFriction)
orxDLLAPI orxBODY *orxFASTCALL orxBody_CreateFromConfig(const orxSTRUCTURE *_pstOwner, const orxSTRING _zConfigID)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPosition(orxBODY *_pstBody, const orxVECTOR *_pvPosition)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetPartSelfFlags(orxBODY_PART *_pstBodyPart, orxU16 _u16SelfFlags)
orxDLLAPI orxU32 orxFASTCALL orxBody_GetDefFlags(const orxBODY *_pstBody, orxU32 _u32Mask)
orxDLLAPI orxBODY *orxFASTCALL orxBody_Raycast(const orxVECTOR *_pvBegin, const orxVECTOR *_pvEnd, orxU16 _u16SelfFlags, orxU16 _u16CheckMask, orxBOOL _bEarlyExit, orxVECTOR *_pvContact, orxVECTOR *_pvNormal)
orxDLLAPI orxBOOL orxFASTCALL orxBody_GetAllowMoving(const orxBODY *_pstBody)
orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetPartRestitution(const orxBODY_PART *_pstBodyPart)
orxDLLAPI orxBODY_JOINT *orxFASTCALL orxBody_AddJoint(orxBODY *_pstSrcBody, orxBODY *_pstDstBody, const orxBODY_JOINT_DEF *_pstBodyJointDef)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetScale(orxBODY *_pstBody, const orxVECTOR *_pvScale)
orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetMassCenter(const orxBODY *_pstBody, orxVECTOR *_pvMassCenter)
orxDLLAPI orxU32 orxFASTCALL orxBody_BoxPick(const orxAABOX *_pstBox, orxU16 _u16SelfFlags, orxU16 _u16CheckMask, orxBODY *_apstBodyList[], orxU32 _u32Number)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_ApplyTorque(orxBODY *_pstBody, orxFLOAT _fTorque)
orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetPartDensity(const orxBODY_PART *_pstBodyPart)
orxDLLAPI orxVECTOR *orxFASTCALL orxBody_GetJointReactionForce(const orxBODY_JOINT *_pstBodyJoint, orxVECTOR *_pvForce)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_RemovePartFromConfig(orxBODY *_pstBody, const orxSTRING _zConfigID)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_RemovePart(orxBODY_PART *_pstBodyPart)
orxDLLAPI orxBOOL orxFASTCALL orxBody_IsPartSolid(const orxBODY_PART *_pstBodyPart)
orxDLLAPI orxBOOL orxFASTCALL orxBody_IsInside(const orxBODY *_pstBody, const orxVECTOR *_pvPosition)
orxDLLAPI orxSTATUS orxFASTCALL orxBody_SetJointMaxMotorTorque(orxBODY_JOINT *_pstBodyJoint, orxFLOAT _fMaxTorque)
orxDLLAPI orxFLOAT orxFASTCALL orxBody_GetAngularDamping(const orxBODY *_pstBody)
orxDLLAPI orxBOOL orxFASTCALL orxBody_IsFixedRotation(const orxBODY *_pstBody)
orxDLLAPI orxBODY_JOINT *orxFASTCALL orxBody_GetNextJoint(const orxBODY *_pstBody, const orxBODY_JOINT *_pstBodyJoint)
orxDLLAPI orxBODY_PART *orxFASTCALL orxBody_AddPartFromConfig(orxBODY *_pstBody, const orxSTRING _zConfigID)
#define orxDLLAPI
Definition orxDecl.h:381
#define orxSTRUCTURE(STRUCTURE)
#define orxBODY(STRUCTURE)
orxSTATUS
Definition orxType.h:270

Generated for orx by doxygen 1.8.11