Drag[en]gine Game Engine
1.21
|
Component collider. More...
#include <deColliderComponent.h>
Public Types | |
typedef deTObjectReference< deColliderComponent > | Ref |
Type holding strong reference. More... | |
Public Types inherited from deColliderRig | |
typedef deTObjectReference< deColliderRig > | Ref |
Type holding strong reference. More... | |
Public Types inherited from deCollider | |
enum | eResponseType { ertStatic , ertDynamic , ertKinematic } |
Collision Response Types. More... | |
typedef deTObjectReference< deCollider > | Ref |
Type holding strong reference. More... | |
Public Types inherited from deResource | |
typedef deTObjectReference< deResource > | Ref |
Type holding strong reference. More... | |
Public Types inherited from deObject | |
typedef deTObjectReference< deObject > | Ref |
Type holding strong reference. More... | |
Public Member Functions | |
Management | |
deComponent * | GetComponent () const |
Component or NULL if not set. More... | |
void | SetComponent (deComponent *component) |
Set component or NULL if not set. More... | |
void | CopyStatesFromComponent () |
Copy bone states of the bones from the component if set. More... | |
void | CopyStateFromComponent (int bone) |
Copy a bone state from the component bone if set. More... | |
void | CopyStatesToComponent () const |
Copy bone states to component bones if set. More... | |
void | CopyStateToComponent (int bone) const |
Copy bone state to component bone if set. More... | |
void | InitWeightAttachment (deColliderAttachment &attachment, int face) |
Set up weight based attachment parameters. More... | |
Visiting | |
virtual void | Visit (deColliderVisitor &visitor) |
Visit collider. More... | |
Public Member Functions inherited from deColliderRig | |
deRig * | GetRig () const |
Rig or NULL if not set. More... | |
void | SetRig (deRig *rig) |
Set rig or NULL if not set. More... | |
int | GetBoneCount () const |
Number of bones. More... | |
deColliderBone & | GetBoneAt (int index) const |
Bone at index. More... | |
void | CopyStatesFromColliderRig (const deColliderRig &collider) |
Copy bone states from another rig collider bones if set. More... | |
void | CopyStateFromColliderRig (int bone, const deColliderRig &collider) |
Copy a bone state from a collider rig bone if set. More... | |
void | CopyStateFromColliderRig (int boneFrom, int boneTo, const deColliderRig &collider) |
Copy a bone state from a collider rig bone if set. More... | |
void | EnableBoneConstraint (int bone, int constraint, bool enable) |
Enable or disable a bone constraint. More... | |
void | ReplaceBoneConstraint (int bone, int constraint, const deRigConstraint &replacement) |
Replace a bone constraint. More... | |
void | ApplyBoneImpuls (int bone, const decVector &impuls) |
Apply impuls at center mass point of bone. More... | |
void | ApplyBoneImpulsAt (int bone, const decVector &impuls, const decVector &point) |
Apply impuls relative to bone position. More... | |
void | ApplyBoneTorqueImpuls (int bone, const decVector &torqueImpuls) |
Apply torque impuls at center mass point of bone. More... | |
void | ApplyBoneForce (int bone, const decVector &force) |
Apply force at center mass point of bone. More... | |
void | ApplyBoneForceAt (int bone, const decVector &force, const decVector &point) |
Apply force relative to bone position. More... | |
void | ApplyBoneTorque (int bone, const decVector &torque) |
Apply torque force at center mass point of bone. More... | |
deColliderRig (deColliderManager *manager) | |
Create rig collider. More... | |
Public Member Functions inherited from deCollider | |
const decDVector & | GetPosition () const |
Central mass point position. More... | |
void | SetPosition (const decDVector &position) |
Set central mass point position. More... | |
const decQuaternion & | GetOrientation () const |
Orientation. More... | |
void | SetOrientation (const decQuaternion &orientation) |
Set orientation. More... | |
void | SetGeometry (const decDVector &position, const decQuaternion &orientation) |
Set position and orientation at the same time. More... | |
void | SetGeometry (const decDVector &position, const decQuaternion &orientation, const decVector &scale) |
const decVector & | GetScale () const |
Scale. More... | |
void | SetScale (const decVector &scale) |
Set scale. More... | |
const decVector & | GetLinearVelocity () const |
Linear velocity in m/s. More... | |
void | SetLinearVelocity (const decVector &linVelo) |
Set linear velocity in m/s. More... | |
const decVector & | GetAngularVelocity () const |
Angular velocity in degree/s. More... | |
void | SetAngularVelocity (const decVector &angVelo) |
Set angular velocity in degree/s. More... | |
float | GetMass () const |
Mass in kg. More... | |
void | SetMass (float mass) |
Set mass in kg. More... | |
const decVector & | GetGravity () const |
Gravity in m/s^2. More... | |
void | SetGravity (const decVector &gravity) |
Set gravity in m/s^2. More... | |
bool | GetEnabled () const |
Collider is enabled. More... | |
void | SetEnabled (bool enabled) |
Set if collider is enabled. More... | |
eResponseType | GetResponseType () const |
Collision response type. More... | |
void | SetResponseType (eResponseType responseType) |
Set Collision response type. More... | |
bool | GetUseLocalGravity () const |
Use local gravity instead of the world gravity. More... | |
void | SetUseLocalGravity (bool useLocalGravity) |
Set if local gravity is used instead of the world gravity. More... | |
float | GetForceFieldDirect () const |
Factor for direct type force fields. More... | |
void | SetForceFieldDirect (float factor) |
Set factor for direct type force fields. More... | |
float | GetForceFieldSurface () const |
Factor for surface type force fields. More... | |
void | SetForceFieldSurface (float factor) |
Set factor for surface type force fields. More... | |
float | GetForceFieldMass () const |
Factor for mass type force fields. More... | |
void | SetForceFieldMass (float factor) |
Set factor for mass type force fields. More... | |
float | GetForceFieldSpeed () const |
Factor for speed type force fields. More... | |
void | SetForceFieldSpeed (float factor) |
Set factor for speed type force fields. More... | |
const decCollisionFilter & | GetCollisionFilter () const |
Collision filter. More... | |
void | SetCollisionFilter (const decCollisionFilter &filter) |
Set collision filter. More... | |
void | ApplyImpuls (const decVector &impuls) |
Apply impuls at the center mass point. More... | |
void | ApplyImpulsAt (const decVector &impuls, const decVector &point) |
Apply impuls relative to the collider position. More... | |
void | ApplyTorqueImpuls (const decVector &torqueImpuls) |
Apply torque impuls at the center mass point. More... | |
void | ApplyForce (const decVector &force) |
Apply force at the center mass point. More... | |
void | ApplyForceAt (const decVector &force, const decVector &point) |
Apply force relative to the collider position. More... | |
void | ApplyTorque (const decVector &torque) |
Apply torque force at the center mass point. More... | |
int | GetAttachmentCount () const |
Number of attachments. More... | |
deColliderAttachment * | GetAttachmentAt (int index) const |
Attachment at index. More... | |
bool | HasAttachmentWith (deResource *resource) const |
Resource is attached. More... | |
deColliderAttachment * | GetAttachmentWith (deResource *resource) const |
Attachment with resource or NULL if not attached. More... | |
void | AddAttachment (deColliderAttachment *attachment) |
Add attachment. More... | |
void | RemoveAttachment (deColliderAttachment *attachment) |
Remove attachment. More... | |
void | RemoveAllAttachments () |
Remove all attachments. More... | |
void | NotifyAttachmentChanged (int index) |
Notify peers attachment changed. More... | |
void | AttachmentsForceUpdate () |
Force update of all attachments. More... | |
int | GetConstraintCount () const |
Number of constraints. More... | |
deColliderConstraint * | GetConstraintAt (int index) const |
Constraint at index. More... | |
int | IndexOfConstraint (deColliderConstraint *constraint) const |
Index of constraint or -1 if absent. More... | |
bool | HasConstraint (deColliderConstraint *constraint) const |
Constraint is present. More... | |
void | AddConstraint (deColliderConstraint *constraint) |
Add constraint. More... | |
void | RemoveConstraint (deColliderConstraint *constraint) |
Remove constraint. More... | |
void | RemoveAllConstraints () |
Remove all constraints. More... | |
void | NotifyConstraintChanged (int index) |
Notify peers constraint has changed. More... | |
int | GetIgnoreColliderCount () const |
Number of colliders to ignore. More... | |
deCollider * | GetIgnoreColliderAt (int index) const |
Collider to ignore at index. More... | |
bool | HasIgnoreCollider (deCollider *collider) const |
Collider to ignore is present. More... | |
void | AddIgnoreCollider (deCollider *collider) |
Add collider to ignore. More... | |
void | RemoveIgnoreCollider (deCollider *collider) |
Remove collider to ignore. More... | |
void | RemoveAllIgnoreColliders () |
Remove all colliders to ignore. More... | |
int | GetCollisionTestCount () const |
Number of post physics collision tests. More... | |
deColliderCollisionTest * | GetCollisionTestAt (int index) const |
Post physics collision test at index. More... | |
int | IndexOfCollisionTest (deColliderCollisionTest *collisionTest) const |
Index of post physics collision test or -1 if not found. More... | |
bool | HasCollisionTest (deColliderCollisionTest *collisionTest) const |
Post physics collision test is present. More... | |
void | AddCollisionTest (deColliderCollisionTest *collisionTest) |
Adds post physics collision test. More... | |
void | RemoveCollisionTest (deColliderCollisionTest *collisionTest) |
Remove post physics collision test. More... | |
void | RemoveAllCollisionTests () |
Remove all post physics collision tests. More... | |
void | NotifyCollisionTestChanged (int index) |
Notify peers a post physics collision test changed. More... | |
void | NotifyCollisionTestEnableChanged (int index) |
Notify peers a post physics collision test enabled or disabled. More... | |
bool | PointInside (const decDVector &point) |
Test if a point is located inside the collider. More... | |
void | RayHits (const decDVector &rayOrigin, const decVector &rayDirection, deBaseScriptingCollider *listener) |
Test ray for collision with the collider. More... | |
void | ColliderHits (deCollider *collider, deBaseScriptingCollider *listener) |
Test collider for collision with collider. More... | |
void | ColliderMoveHits (deCollider *collider, const decVector &displacement, deBaseScriptingCollider *listener) |
Test moving collider for collision with collider. More... | |
void | ColliderRotateHits (deCollider *collider, const decVector &rotation, deBaseScriptingCollider *listener) |
Test rotating collider for collision with collider. More... | |
void | ColliderMoveRotateHits (deCollider *collider, const decVector &displacement, const decVector &rotation, deBaseScriptingCollider *listener) |
Test moving and rotating collider for collision with collider. More... | |
deBasePhysicsCollider * | GetPeerPhysics () const |
Physics system peer. More... | |
void | SetPeerPhysics (deBasePhysicsCollider *peer) |
Set physics system peer. More... | |
deBaseScriptingCollider * | GetPeerScripting () const |
Scripting system peer. More... | |
void | SetPeerScripting (deBaseScriptingCollider *peer) |
Set scripting system peer. More... | |
deWorld * | GetParentWorld () const |
Parent world or NULL. More... | |
void | SetParentWorld (deWorld *world) |
Set parent world or NULL. More... | |
deCollider * | GetLLWorldPrev () const |
Previous collider in the parent world linked list. More... | |
void | SetLLWorldPrev (deCollider *collider) |
Set next collider in the parent world linked list. More... | |
deCollider * | GetLLWorldNext () const |
Next collider in the parent world linked list. More... | |
void | SetLLWorldNext (deCollider *collider) |
Set next collider in the parent world linked list. More... | |
deCollider (deColliderManager *manager) | |
Create collider. More... | |
Public Member Functions inherited from deResource | |
deResourceManager * | GetResourceManager () const |
Resource manager or NULL if resource is leaking. More... | |
deEngine * | GetEngine () const |
Game engine object from resource manager. More... | |
deResource * | GetLLManagerPrev () const |
Previous resource in the resource manager linked list. More... | |
void | SetLLManagerPrev (deResource *resource) |
Set next resource in the resource manager linked list. More... | |
deResource * | GetLLManagerNext () const |
Next resource in the resource manager linked list. More... | |
void | SetLLManagerNext (deResource *resource) |
Set next resource in the resource manager linked list. More... | |
void | MarkLeaking () |
Marks the resource leaking. More... | |
deResource (deResourceManager *resourceManager) | |
Create resource. More... | |
Public Member Functions inherited from deObject | |
int | GetRefCount () const |
Reference count. More... | |
void | AddReference () |
Add reference increasing reference count by 1. More... | |
void | FreeReference () |
Decrease reference count by one and delete object if count reaches 0. More... | |
deObject () | |
Create object with reference count of 1. More... | |
Constructors and Destructors | |
deColliderComponent (deColliderManager *manager) | |
Create component collider. More... | |
virtual | ~deColliderComponent () |
Clean up component collider. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from deColliderRig | |
virtual | ~deColliderRig () |
Clean up rig collider. More... | |
Protected Member Functions inherited from deCollider | |
void | pNotifyCollisionVolumeChanged () |
void | pNotifyRigChanged () |
void | pNotifyComponentChanged () |
void | pNotifyBonePositionChanged (int index) |
void | pNotifyBoneOrientationChanged (int index) |
void | pNotifyBoneLinearVelocityChanged (int index) |
void | pNotifyBoneAngularVelocityChanged (int index) |
void | pNotifyBonePropertiesChanged (int index) |
void | pNotifyBoneDynamicChanged (int index) |
virtual | ~deCollider () |
Clean up collider. More... | |
Protected Member Functions inherited from deResource | |
virtual | ~deResource () |
Clean up resource. More... | |
Protected Member Functions inherited from deObject | |
virtual | ~deObject () |
Clean up object. More... | |
Component collider.
Colliders are used by the physics module to provide collision detection and optional collision response. After the collision detection stage is done each Collider contains the new state of motion. The user can then update the game state depending on the changes. The scripting peer receives all relevant events during a collision detection run. The Collider is defined by a Component object. The Component object contains a Model and a Rig object. The Rig object defines the bones and the physical properties but the collision volumes are ignored. Instead the triangle mesh stored in the Model is used as collision volume. Optional a Collision Model object can be assigned to be used instead of the Model object providing more a optimized collision volume.
Type holding strong reference.
deColliderComponent::deColliderComponent | ( | deColliderManager * | manager | ) |
Create component collider.
|
protectedvirtual |
Clean up component collider.
void deColliderComponent::CopyStateFromComponent | ( | int | bone | ) |
Copy a bone state from the component bone if set.
If the component is not set nothing is done at all. All linear and angular velocities are set to zero.
void deColliderComponent::CopyStatesFromComponent | ( | ) |
Copy bone states of the bones from the component if set.
If the component is not set nothing is done at all. All linear and angular velocities are set to zero.
void deColliderComponent::CopyStatesToComponent | ( | ) | const |
Copy bone states to component bones if set.
If the component is not set nothing is done at all.
void deColliderComponent::CopyStateToComponent | ( | int | bone | ) | const |
Copy bone state to component bone if set.
If the component is not set nothing is done at all.
|
inline |
Component or NULL if not set.
void deColliderComponent::InitWeightAttachment | ( | deColliderAttachment & | attachment, |
int | face | ||
) |
Set up weight based attachment parameters.
Before calling set up attachment position and orientation relative to the component using attachment.SetPosition() and attachment.SetOrientation() as if static attachment is used. This is required to properly calculate the weighting. After this call finishes the position and orientation usually changed.
[in] | attachment | Attachment to modify. |
[in] | face | Index of face. Typically comes from deCollisionInfo::GetFace(). |
EInvalidParam | Face index is outside allowed boundaries. |
void deColliderComponent::SetComponent | ( | deComponent * | component | ) |
Set component or NULL if not set.
Sets also the rig ro the component rig or NULL. If the rig in the component changes SetRig() has to be called to synchronize the component collider with the changed situation.
|
virtual |
Visit collider.
Reimplemented from deColliderRig.