#include "TA/Physics/PhysicsJoint.h"
Documentation for this class is not complete yet.
To create a joint, use TA::DynamicObject::AddJoint. All creation and destruction of joints is done in TA::DynamicObject.
After creating a joint it must be initialised using one of the initialisation functions:
or one of the extended initialised functions:
The extended functions are more difficult to use but allow a joint to be created and orientated regardless of the current location and orientation of the objects being joined. In most cases, it using the normal initialisation functions is probably more straight forward.
Any initialisation function can be called multiple times on the one joint to change its type or configuration.
The Joint Properties functions are not all fully documented, however, the names match the parameters passed in when initialising a Joint.
The reset functions are all deprecated. Use the initialise functions instead.
Public Types | |
enum | Type { TYPE_BALL_AND_SOCKET = 0, TYPE_LIMITED_BALL_AND_SOCKET = 1, TYPE_SQUARE_SOCKET = 2, TYPE_EULER_ANGLE_CONSTRAINT = 31, TYPE_LINEAR_SLIDER = 4, TYPE_ROTATION_CONSTRAINT = 5, TYPE_VECTOR_CONSTRAINT = 6 } |
Public Member Functions | |
Initialise Functions | |
void | InitialiseEulerConstraint (const Vec3 &v3Position, const Mat33 &m33JointOrientation, const EulerAngles &minAngles, const EulerAngles &maxAngles) |
void | InitialiseHinge (const Vec3 &v3Position, const Vec3 &v3HingeAxis, float fMinAngle, float fMaxAngle) |
void | InitialiseBallAndSocket (const Vec3 &v3Position, const Vec3 &v3LimitCenterDirection, float fMaxAngle) |
void | InitialiseLimitedBallAndSocket (const Vec3 &v3Position, const Mat33 &m33JointOrientation, float fMaxAngleY, float fMaxAngleXZ) |
void | InitialiseSquareSocket (const Vec3 &v3Position, const Mat33 &m33JointOrientation, float fMinX, float fMaxX, float fMinY, float fMaxY, float fMinZ, float fMaxZ) |
void | InitialiseSlider (const Vec3 &v3PosOnA, const Vec3 &v3StartPosOnB, const Vec3 &v3EndPosPosOnB) |
void | InitialiseRotationConstraint (const Mat33 &m33JointOrientation, const EulerAngles &minAngles, const EulerAngles &maxAngles) |
void | InitialiseVectorConstraint (const Vec3 &v3LimitCenterDirection, float fMaxAngle) |
Extended Initialise Functions | |
void | InitialiseEulerConstraintEx (const Vec3 &v3LocalPosOnA, const Vec3 &v3LocalPosOnB, const Mat33 &m33JointOrientation, const Mat33 &m33DefaultRotationA, const Mat33 &m33DefaultRotationB, const EulerAngles &minAngles, const EulerAngles &maxAngles) |
void | InitialiseHingeEx (const Vec3 &v3LocalPosOnA, const Vec3 &v3LocalPosOnB, const Vec3 &v3HingeAxis, const Vec3 &v3HingeCenterDirection, const Mat33 &m33DefaultRotationA, const Mat33 &m33DefaultRotationB, float fMinAngle, float fMaxAngle) |
void | InitialiseBallAndSocketEx (const Vec3 &v3LocalPosOnA, const Vec3 &v3LocalPosOnB, const Vec3 &v3LocalLimitCenterDirectionOnA, const Vec3 &v3LocalLimitCenterDirectionOnB, float fMaxAngle) |
void | InitialiseLimitedBallAndSocketEx (const Vec3 &v3LocalPosOnA, const Vec3 &v3LocalPosOnB, const Mat33 &m33JointOrientation, const Mat33 &m33DefaultRotationA, const Mat33 &m33DefaultRotationB, float fMaxAngleY, float fMaxAngleXZ) |
void | InitialiseSquareSocketEx (const Vec3 &v3LocalPosOnA, const Vec3 &v3LocalPosOnB, const Mat33 &m33JointOrientation, const Mat33 &m33DefaultRotationA, const Mat33 &m33DefaultRotationB, float fMinX, float fMaxX, float fMinY, float fMaxY, float fMinZ, float fMaxZ) |
void | InitialiseSliderEx (const Vec3 &v3LocalPosOnA, const Vec3 &v3LocalStartPosOnB, const Vec3 &v3LocalEndPosPosOnB) |
void | InitialiseRotationConstraintEx (const Mat33 &m33JointOrientation, const Mat33 &m33DefaultRotationA, const Mat33 &m33DefaultRotationB, const EulerAngles &minAngles, const EulerAngles &maxAngles) |
void | InitialiseVectorConstraintEx (const Vec3 &v3LocalLimitCenterDirectionOnA, const Vec3 &v3LocalLimitCenterDirectionOnB, float fMaxAngle) |
Deprecated Reset Functions | |
void | Reset (const Vec3 &v3PosOnA, const Vec3 &v3PosOnB, const Mat33 &defaultRotationB, const EulerAngles &minAngles, const EulerAngles &maxAngles) |
void | ResetAsTypeHinge (const Vec3 &v3PosOnA, const Vec3 &v3PosOnB, const Vec3 &v3LocalHingeAxis, const Vec3 &v3LocalHingeNormal, float fMinAngle, float fMaxAngle) |
void | ResetAsTypeSocket (const Vec3 &v3PosOnA, const Vec3 &v3PosOnB, const Vec3 &v3LimitNormalOnA, const Vec3 &v3LimitNormalOnB, float fMaxAngle) |
void | ResetAsTypeLimitedSocket (const Vec3 &v3PosOnA, const Vec3 &v3PosOnB, const Mat33 &defaultRotationB, float fMaxAngleY, float fMaxAngleXZ) |
void | ResetAsTypeSquareSocket (const Vec3 &v3PosOnA, const Vec3 &v3PosOnB, const Mat33 &defaultRotationB, float fMinX, float fMaxX, float fMinY, float fMaxY, float fMinZ, float fMaxZ) |
void | ResetAsTypeSlider (const Vec3 &v3PosOnA, const Vec3 &v3StartPosOnB, const Vec3 &v3EndPosPosOnB) |
void | ResetAsTypeRotationConstraint (const Mat33 &defaultRotationB, const EulerAngles &minAngles, const EulerAngles &maxAngles) |
void | ResetAsTypeVectorConstraint (const Vec3 &v3LimitNormalOnA, const Vec3 &v3LimitNormalOnB, float fMaxAngle) |
Object Behaviour | |
bool | IsObjectASolid () const |
void | SetObjectASolid (bool bValue) |
bool | IsObjectBSolid () const |
void | SetObjectBSolid (bool bValue) |
bool | IsCollisionDisabledBetweenObjects () const |
void | SetCollisionDisabledBetweenObjects (bool bValue) |
Breaking | |
float | GetBreakForce () const |
void | SetBreakForce (float fBreakForce) |
void | SetBreakable (bool bValue) |
bool | IsBreakable () const |
void | SetBroken (bool bValue) |
bool | IsBroken () const |
User Data | |
void * | GetUserData () const |
void | SetUserData (void *pUserData) |
Joint Properties | |
Type | GetType () const |
DynamicObject * | GetObjectA () |
DynamicObject * | GetObjectB () |
const Vec3 & | GetPosOnObjectA () const |
const Vec3 & | GetPosOnObjectB () const |
const Vec3 & | GetLimitNormalOnObjectA () const |
const Vec3 & | GetLimitNormalOnObjectB () const |
const Vec3 & | GetCenterDirectionOnObjectA () const |
const Vec3 & | GetCenterDirectionOnObjectB () const |
float | GetMaxAngle () const |
const Mat33 & | GetJointOrientationA () |
const Mat33 & | GetJointOrientationB () |
const EulerAngles & | GetMinAngles () |
const EulerAngles & | GetMaxAngles () |
const Vec3 & | GetSliderPos0 () const |
const Vec3 & | GetSliderPos1 () const |