#include <ContactModification.h>
|
| | FContactPairModifier () |
| |
| | FContactPairModifier (FPBDCollisionConstraint *InConstraint, FCollisionContactModifier &InModifier) |
| |
| CHAOS_API void | Disable () |
| |
| CHAOS_API void | Enable () |
| |
| CHAOS_API void | ConvertToProbe () |
| |
| CHAOS_API void | ConvertToNonProbe () |
| |
| CHAOS_API bool | GetIsProbe () const |
| |
| CHAOS_API int32 | GetNumContacts () const |
| |
| CHAOS_API int32 | GetDeepestContactIndex () const |
| |
| CHAOS_API bool | GetIsInitialContact () const |
| |
| CHAOS_API void | SetIsInitialContact (bool bIsInitialContact) const |
| |
| CHAOS_API const FImplicitObject * | GetContactGeometry (int32 ParticleIdx) |
| |
| CHAOS_API FRigidTransform3 | GetShapeToWorld (int32 ParticleIdx) const |
| |
| CHAOS_API FReal | GetSeparation (int32 ContactPointIdx) const |
| |
| CHAOS_API FReal | GetTargetSeparation (int32 ContactPointIdx) const |
| |
| CHAOS_API void | ModifyTargetSeparation (FReal TargetSeparation, int32 ContactPointIdx) |
| |
| CHAOS_API FVec3 | GetWorldNormal (int32 ContactPointIdx) const |
| | Get the world-space contact normal.
|
| |
| CHAOS_API void | ModifyWorldNormal (const FVec3 &Normal, int32 ContactPointIdx) |
| |
| CHAOS_API void | GetWorldContactLocations (int32 ContactPointIdx, FVec3 &OutLocation0, FVec3 &OutLocation1) const |
| |
| CHAOS_API FVec3 | GetWorldContactLocation (int32 ContactPointIdx) const |
| |
| CHAOS_API void | ModifyWorldContactLocations (const FVec3 &Location0, const FVec3 &Location1, int32 ContactPointIdx) |
| |
| CHAOS_API FReal | GetRestitution () const |
| |
| CHAOS_API void | ModifyRestitution (FReal Restitution) |
| |
| CHAOS_API FReal | GetRestitutionThreshold () const |
| |
| CHAOS_API void | ModifyRestitutionThreshold (FReal Restitution) |
| |
| CHAOS_API FReal | GetDynamicFriction () const |
| |
| CHAOS_API void | ModifyDynamicFriction (FReal DynamicFriction) |
| |
| CHAOS_API FReal | GetStaticFriction () const |
| |
| CHAOS_API void | ModifyStaticFriction (FReal StaticFriction) |
| |
| CHAOS_API FVec3 | GetParticleVelocity (int32 ParticleIdx) const |
| |
| CHAOS_API void | ModifyParticleVelocity (FVec3 Velocity, int32 ParticleIdx) |
| |
| CHAOS_API FVec3 | GetParticleAngularVelocity (int32 ParticleIdx) const |
| |
| CHAOS_API void | ModifyParticleAngularVelocity (FVec3 AngularVelocity, int32 ParticleIdx) |
| |
| CHAOS_API FVec3 | GetParticlePosition (int32 ParticleIdx) const |
| |
| CHAOS_API void | ModifyParticlePosition (FVec3 Position, bool bMaintainVelocity, int32 ParticleIdx) |
| |
| CHAOS_API FRotation3 | GetParticleRotation (int32 ParticleIdx) const |
| |
| CHAOS_API void | ModifyParticleRotation (FRotation3 Rotation, bool bMaintainVelocity, int32 ParticleIdx) |
| |
| CHAOS_API FReal | GetInvInertiaScale (int32 ParticleIdx) const |
| |
| CHAOS_API void | ModifyInvInertiaScale (FReal InvInertiaScale, int32 ParticleIdx) |
| |
| CHAOS_API FReal | GetInvMassScale (int32 ParticleIdx) const |
| |
| CHAOS_API void | ModifyInvMassScale (FReal InvMassScale, int32 ParticleIdx) |
| |
| CHAOS_API FGeometryParticleHandle * | GetOtherParticle (FGeometryParticleHandle *Particle) const |
| |
| CHAOS_API TVec2< FGeometryParticleHandle * > | GetParticlePair () const |
| |
| CHAOS_API TVec2< const FPerShapeData * > | GetShapePair () const |
| |
| CHAOS_API const FShapeInstance * | GetShape (int32 ParticleIdx) const |
| |
| CHAOS_API const FConstImplicitObjectRef | GetImplicit (int32 ParticleIdx) const |
| |
| CHAOS_API bool | GetIsCCD () const |
| |
| CHAOS_API bool | IsEdgeContactPoint (int32 ContactPointIdx) const |
| |
| CHAOS_API bool | IsContactPointDisabled (int32 ContactPointIdx) const |
| |
| CHAOS_API void | SetContactPointDisabled (int32 ContactPointIdx) const |
| |
◆ FContactPairModifier() [1/2]
| Chaos::FContactPairModifier::FContactPairModifier |
( |
| ) |
|
|
inline |
◆ FContactPairModifier() [2/2]
◆ ConvertToNonProbe()
| void Chaos::FContactPairModifier::ConvertToNonProbe |
( |
| ) |
|
Convert the constraint from probe to a regular physical collision
◆ ConvertToProbe()
| void Chaos::FContactPairModifier::ConvertToProbe |
( |
| ) |
|
Convert the constraint between this pair of bodies into a probe. Collision callbacks will still occur if the bodies collide (a contact occurring in contact modification does not mean a contact actually has occurred yet, but that it may)
◆ Disable()
| void Chaos::FContactPairModifier::Disable |
( |
| ) |
|
Disable all contact points for this pair of bodies.
◆ Enable()
| void Chaos::FContactPairModifier::Enable |
( |
| ) |
|
Enables all contact points for this pair of bodies. This does nothing unless Disable() was previously called.
◆ GetContactGeometry()
- Returns
- Geometry of specified particle in contact pair.
◆ GetDeepestContactIndex()
| int32 Chaos::FContactPairModifier::GetDeepestContactIndex |
( |
| ) |
const |
- Returns
- Contact point index of point in manifold penetrating the deepest.
◆ GetDynamicFriction()
| FReal Chaos::FContactPairModifier::GetDynamicFriction |
( |
| ) |
const |
- Returns
- Dynamic friction coefficient of contact.
◆ GetImplicit()
◆ GetInvInertiaScale()
| FReal Chaos::FContactPairModifier::GetInvInertiaScale |
( |
int32 |
ParticleIdx | ) |
const |
- Returns
- InvInertiaScale of particle.
◆ GetInvMassScale()
| FReal Chaos::FContactPairModifier::GetInvMassScale |
( |
int32 |
ParticleIdx | ) |
const |
- Returns
- InvMassScale of particle.
◆ GetIsCCD()
| bool Chaos::FContactPairModifier::GetIsCCD |
( |
| ) |
const |
◆ GetIsInitialContact()
| bool Chaos::FContactPairModifier::GetIsInitialContact |
( |
| ) |
const |
- Returns
- true if this contact is an initial contact, i.e., the pair of shapes in the contact were not touching last frame.
◆ GetIsProbe()
| bool Chaos::FContactPairModifier::GetIsProbe |
( |
| ) |
const |
Return true if this constraint is a probe type
◆ GetNumContacts()
| int32 Chaos::FContactPairModifier::GetNumContacts |
( |
| ) |
const |
- Returns
- Number of contact points in constraint pair. ContactPointIdx must be below number of contacts.
◆ GetOtherParticle()
◆ GetParticleAngularVelocity()
| FVec3 Chaos::FContactPairModifier::GetParticleAngularVelocity |
( |
int32 |
ParticleIdx | ) |
const |
- Returns
- Angular velocity of particle.
◆ GetParticlePair()
◆ GetParticlePosition()
| FVec3 Chaos::FContactPairModifier::GetParticlePosition |
( |
int32 |
ParticleIdx | ) |
const |
- Returns
- Position of particle. For simulated objects: this is PBD predicted position and not previous position before integrating movement.
◆ GetParticleRotation()
| FRotation3 Chaos::FContactPairModifier::GetParticleRotation |
( |
int32 |
ParticleIdx | ) |
const |
- Returns
- Rotation of particle. For simulated objects: this is PBD predicted rotation and not previous rotation before integrating movement.
◆ GetParticleVelocity()
| FVec3 Chaos::FContactPairModifier::GetParticleVelocity |
( |
int32 |
ParticleIdx | ) |
const |
- Returns
- Linear velocity of particle.
◆ GetRestitution()
| FReal Chaos::FContactPairModifier::GetRestitution |
( |
| ) |
const |
- Returns
- Restitution of contact.
◆ GetRestitutionThreshold()
| FReal Chaos::FContactPairModifier::GetRestitutionThreshold |
( |
| ) |
const |
- Returns
- Restitution threshold of contact. If velocity of object is below this threshold, no restitution is applied.
◆ GetSeparation()
| FReal Chaos::FContactPairModifier::GetSeparation |
( |
int32 |
ContactPointIdx | ) |
const |
- Returns
- separation of contact locations in direction of normal.
◆ GetShape()
◆ GetShapePair()
◆ GetShapeToWorld()
- Returns
- Transformation from geometry to world.
◆ GetStaticFriction()
| FReal Chaos::FContactPairModifier::GetStaticFriction |
( |
| ) |
const |
- Returns
- Static friction coefficient of contact.
◆ GetTargetSeparation()
| FReal Chaos::FContactPairModifier::GetTargetSeparation |
( |
int32 |
ContactPointIdx | ) |
const |
- Returns
- desired separation of contact locations in direction of normal.
◆ GetWorldContactLocation()
| FVec3 Chaos::FContactPairModifier::GetWorldContactLocation |
( |
int32 |
ContactPointIdx | ) |
const |
- Returns
- Contact location. This is midpoint of each body's contact location.
◆ GetWorldContactLocations()
| void Chaos::FContactPairModifier::GetWorldContactLocations |
( |
int32 |
ContactPointIdx, |
|
|
FVec3 & |
OutLocation0, |
|
|
FVec3 & |
OutLocation1 |
|
) |
| const |
Get contact location on each body in world space.
◆ GetWorldNormal()
| FVec3 Chaos::FContactPairModifier::GetWorldNormal |
( |
int32 |
ContactPointIdx | ) |
const |
Get the world-space contact normal.
- Note
- The contact normal always points away from the second body. E.g., a sphere lying on a flat ground could return a WorldNormal pointing up or down, depending on whether the sphere is the first or second body in the constraint.
- Returns
- Normal of contact in world space.
◆ IsContactPointDisabled()
| bool Chaos::FContactPairModifier::IsContactPointDisabled |
( |
int32 |
ContactPointIdx | ) |
const |
◆ IsEdgeContactPoint()
| bool Chaos::FContactPairModifier::IsEdgeContactPoint |
( |
int32 |
ContactPointIdx | ) |
const |
◆ ModifyDynamicFriction()
| void Chaos::FContactPairModifier::ModifyDynamicFriction |
( |
FReal |
DynamicFriction | ) |
|
Modify dynamic friction coefficient of contact.
◆ ModifyInvInertiaScale()
| void Chaos::FContactPairModifier::ModifyInvInertiaScale |
( |
FReal |
InvInertiaScale, |
|
|
int32 |
ParticleIdx |
|
) |
| |
Modify InvInertiaScale of particle. 0 prevents all rotation of particle due to collision, values > 1 decrease rotational inertia.
◆ ModifyInvMassScale()
| void Chaos::FContactPairModifier::ModifyInvMassScale |
( |
FReal |
InvMassScale, |
|
|
int32 |
ParticleIdx |
|
) |
| |
Modify InvMassScale of particle. 0 gives particle infinite mass during collision, values > 1 decrease mass during collision.
◆ ModifyParticleAngularVelocity()
| void Chaos::FContactPairModifier::ModifyParticleAngularVelocity |
( |
FVec3 |
AngularVelocity, |
|
|
int32 |
ParticleIdx |
|
) |
| |
Modify angular velocity. For simulated objects: Previous frame's rotation is modified to maintain PBD implicit velocity.
◆ ModifyParticlePosition()
| void Chaos::FContactPairModifier::ModifyParticlePosition |
( |
FVec3 |
Position, |
|
|
bool |
bMaintainVelocity, |
|
|
int32 |
ParticleIdx |
|
) |
| |
For simulated objects: this sets PBD predicted position and not position before integrating movement.
- Parameters
-
| bMaintainVelocity | - if true, simulated object will update previous position to maintain implicit velocity. Otherwise changing position will change velocity. |
◆ ModifyParticleRotation()
| void Chaos::FContactPairModifier::ModifyParticleRotation |
( |
FRotation3 |
Rotation, |
|
|
bool |
bMaintainVelocity, |
|
|
int32 |
ParticleIdx |
|
) |
| |
For simulated objects: this sets PBD predicted rotation and not rotation before integrating movement.
- Parameters
-
| bMaintainVelocity | - if true, simulated object will update previous rotation to maintain implicit velocity. Otherwise changing rotation will change angular velocity. |
◆ ModifyParticleVelocity()
| void Chaos::FContactPairModifier::ModifyParticleVelocity |
( |
FVec3 |
Velocity, |
|
|
int32 |
ParticleIdx |
|
) |
| |
Modify linear velocity. For simulated objects: Previous frame's position is modified to maintain PBD implicit velocity.
◆ ModifyRestitution()
| void Chaos::FContactPairModifier::ModifyRestitution |
( |
FReal |
Restitution | ) |
|
Modify restitution of contact. If object is moving slowly, RestitutionThreshold may need to be lowered if restitution is desired.
◆ ModifyRestitutionThreshold()
| void Chaos::FContactPairModifier::ModifyRestitutionThreshold |
( |
FReal |
Restitution | ) |
|
Modify restitution threshold of contact. If velocity of object is below this threshold, no restitution is applied.
◆ ModifyStaticFriction()
| void Chaos::FContactPairModifier::ModifyStaticFriction |
( |
FReal |
StaticFriction | ) |
|
Modify static friction coefficient of contact.
◆ ModifyTargetSeparation()
| void Chaos::FContactPairModifier::ModifyTargetSeparation |
( |
FReal |
TargetSeparation, |
|
|
int32 |
ContactPointIdx |
|
) |
| |
Set the desired separation at the contact point (negative for penetration).
◆ ModifyWorldContactLocations()
| void Chaos::FContactPairModifier::ModifyWorldContactLocations |
( |
const FVec3 & |
Location0, |
|
|
const FVec3 & |
Location1, |
|
|
int32 |
ContactPointIdx |
|
) |
| |
Modify contact location of each body in world space. If modifying locations and separation, order of operations should be considered.
◆ ModifyWorldNormal()
| void Chaos::FContactPairModifier::ModifyWorldNormal |
( |
const FVec3 & |
Normal, |
|
|
int32 |
ContactPointIdx |
|
) |
| |
Modify contact normal in world space. If modifying separation and normal, order of operations should be considered.
- Note
- The contact normal should always point away from the second body.
◆ SetContactPointDisabled()
| void Chaos::FContactPairModifier::SetContactPointDisabled |
( |
int32 |
ContactPointIdx | ) |
const |
◆ SetIsInitialContact()
| void Chaos::FContactPairModifier::SetIsInitialContact |
( |
bool |
bIsInitialContact | ) |
const |
Set whether this contact is considered an initial contact. This controls how the contact behaves with regard to the initial overlap depenetration system.
◆ FVisitedContactPairsTracker
The documentation for this class was generated from the following files: