gePhysicsJoint

Description: Rigid body joint interface

Source file: …\genesis3d\OpenSource\Source\Physics\PhysicsJoint.h

Contents:

Functions: Create, Destroy, GetType, GetLocationA, GetLocationB, SetLocationA, SetLocationB, GetLocationAInWorldSpace, GetLocationBInWorldSpace, SetLocationAInWorldSpace, SetLocationBInWorldSpace, GetObject1, GetObject2, GetAssemblyRate, SetAssemblyRate

Types: gePhysicsJoint_Kind, gePhysicsJoint

Additions for Genesis3D v1.6: None

 

Types:

gePhysicsJoint_Kind
typedef enum {
    JT_WORLD = 0,
    JT_SPHERICAL,
    JT_PTTOPATH,
    JT_PTTOSURFACE
} gePhysicsJoint_Kind;
Return to Contents

 

gePhysicsJoint
typedef struct gePhysicsJoint gePhysicsJoint;
NOTE: The contents of this structure have been intentionally left out of the interface, by the designers of this module. Think of this as a handle only.
 Return to Contents

 

Functions:

GENESISAPI gePhysicsJoint* GENESISCC gePhysicsJoint_Create(gePhysicsJoint_Kind Kind, const geVec3d* Location, float assemblyRate, gePhysicsObject* PS1, gePhysicsObject* PS2, float physicsScale);
Creates a joint between two gePhysicsObjects
Kind: Should be JT_WORLD (a joint between PS1 and world) or JT_SPHERICAL (a joint between PS1 and PS2)
Location: the location of the joint.
assemblyRate: not sure what this is, or what value it should be. Is used in gePhysicsSystem_Iterate for calculation of joint movement.
PS1: the first object connected by the new joint. Must not be NULL.
PS2: the second object connected by the new joint. Not used (thus may be NULL) if Kind=JT_WORLD.
physicsScale: used to scale Location into an internal physicsSpaceLocation.
Return to Contents

GENESISAPI geBoolean GENESISCC gePhysicsJoint_Destroy(gePhysicsJoint** ppPhysjnt);
Destroys a joint
Return to Contents

GENESISAPI gePhysicsJoint_Kind GENESISCC gePhysicsJoint_GetType(const gePhysicsJoint* pPhysjnt);
Returns the type of the joint
Return to Contents

GENESISAPI void GENESISCC gePhysicsJoint_GetLocationA(const gePhysicsJoint* pPhysjnt, geVec3d* pLoc);
LocationA is the location of PS1, as specified during Create.
Return to Contents

GENESISAPI void GENESISCC gePhysicsJoint_GetLocationB(const gePhysicsJoint* pPhysjnt, geVec3d* pLoc);
This is the location of PS2, as specified during Create. If joint Kind was JT_WORLD, then LocationB will be equal to the location of the joint itself, as specifed during Create.
Return to Contents

GENESISAPI void GENESISCC gePhysicsJoint_SetLocationA(gePhysicsJoint* pPhysjnt, const geVec3d* pLoc);
Will set LocationA. See notes in GetLocationA.
Return to Contents

GENESISAPI void GENESISCC gePhysicsJoint_SetLocationB(gePhysicsJoint* pPhysjnt, const geVec3d* pLoc);
Will set LocationB. See notes in GetLocationB.
Return to Contents

GENESISAPI void GENESISCC gePhysicsJoint_GetLocationAInWorldSpace(const gePhysicsJoint* pPhysjnt, geVec3d* pLoc);
Gets LocationA in WorldSpace. See notes in GetLocationA.
Return to Contents

GENESISAPI void GENESISCC gePhysicsJoint_GetLocationBInWorldSpace(const gePhysicsJoint* pPhysjnt, geVec3d* pLoc);
Will get LocationB in WorldSpace. See notes in GetLocationB.
Return to Contents

GENESISAPI void GENESISCC gePhysicsJoint_SetLocationAInWorldSpace(gePhysicsJoint* pPhysjnt, const geVec3d* pLoc);
Sets LocationA in WorldSpace. See notes in GetLocationA.
Return to Contents

GENESISAPI void GENESISCC gePhysicsJoint_SetLocationBInWorldSpace(gePhysicsJoint* pPhysjnt, const geVec3d* pLoc);
Sets LocationB in WorldSpace. See notes in GetLocationB.
Return to Contents

GENESISAPI gePhysicsObject* GENESISCC gePhysicsJoint_GetObject1(const gePhysicsJoint* pPhysjnt);
Will return first Object (PS1) as specified during Create.
Return to Contents

GENESISAPI gePhysicsObject* GENESISCC gePhysicsJoint_GetObject2(const gePhysicsJoint* pPhysjnt);
Will return second Object (PS2) as specified during Create.
Return to Contents

GENESISAPI float GENESISCC gePhysicsJoint_GetAssemblyRate(const gePhysicsJoint* pPhysjnt);
Will get assemblyRate. Not sure how this is used. Was initially specified during Create.
Return to Contents

GENESISAPI void GENESISCC gePhysicsJoint_SetAssemblyRate(gePhysicsJoint* pPhysjnt, float assemblyRate);
Will set assemblyRate. Not sure how this is used, or what value range should be.
 Return to Contents