Navigation
API > API/Runtime > API/Runtime/Chaos
A contact constraint represents the non-penetration, friction, and restitution constraints for a single shape pair on a particle pair. I.e., a specific particle-pair may have multiple contact constraints between them if one or boht has multuple collision shapes that overlap the shape(s) of the other body.
Each contact constraint contains a Manifold, which is a set of contact points that approximate the contact patch between the two shapes.
Contact constraints are allocated on the heap (Asee FCollisionConstraintAllocator) and have permanent addresses. They use intrusive handles to reduce unnecessary indirection.
| Name | FPBDCollisionConstraint |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/Collision/PBDCollisionConstraint.h |
| Include Path | #include "Chaos/Collision/PBDCollisionConstraint.h" |
Syntax
class FPBDCollisionConstraint : public Chaos::FPBDCollisionConstraintHandle
Inheritance Hierarchy
- FConstraintHandle → FIntrusiveConstraintHandle → TIntrusiveConstraintHandle → FPBDCollisionConstraintHandle → FPBDCollisionConstraint
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FPBDCollisionConstraint
(
FGeometryParticleHandle* Particle0, |
Chaos/Collision/PBDCollisionConstraint.h | ||
| Chaos/Collision/PBDCollisionConstraint.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FPBDCollisionConstraint() |
Chaos/Collision/PBDCollisionConstraint.h |
Classes
| Name | Remarks |
|---|---|
| FFlags |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FConstraintContainerHandle | TIntrusiveConstraintHandle< FPBDCollisionConstraint > | Chaos/Collision/PBDCollisionConstraint.h | |
| TManifoldPointArray | TArray< T, TInlineAllocator< 4 > > | Chaos/Collision/PBDCollisionConstraint.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| MaxTOI | FRealSingle | Chaos/Collision/PBDCollisionConstraint.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AccumulatedImpulse | FVec3f | Chaos/Collision/PBDCollisionConstraint.h |
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| BoundsTestFlags | Private::FImplicitBoundsTestFlags | Chaos/Collision/PBDCollisionConstraint.h | ||
| CCDEnablePenetration | FRealSingle | The penetration at which CCD contacts get processed following a CCD sweep test. | Chaos/Collision/PBDCollisionConstraint.h | |
| CCDTargetPenetration | FRealSingle | The penetration we leave behind when rolling back to a CCD time of impact. | Chaos/Collision/PBDCollisionConstraint.h | |
| CCDTimeOfImpact | FRealSingle | Value in range [0,1] used to interpolate P between [X,P] that we will rollback to when solving at time of impact. | Chaos/Collision/PBDCollisionConstraint.h | |
| ClosestManifoldPointIndex | int32 | The index into ManifoldPoints of the point with the lowest Phi. | Chaos/Collision/PBDCollisionConstraint.h | |
| CollisionMargins | FRealSingle | The margins to use during collision detection. | Chaos/Collision/PBDCollisionConstraint.h | |
| CollisionSortKey | Private::FCollisionSortKey | Chaos/Collision/PBDCollisionConstraint.h | ||
| CollisionTolerance | FRealSingle | The collision tolerance is used to determine whether a new contact matches an old on. | Chaos/Collision/PBDCollisionConstraint.h | |
| ContainerCookie | FPBDCollisionConstraintContainerCookie | Chaos/Collision/PBDCollisionConstraint.h | ||
| CullDistance | FRealSingle | The separation distance at which we don't track contacts. | Chaos/Collision/PBDCollisionConstraint.h | |
| ExpectedNumManifoldPoints | int32 | Used by manifold point injection to see how many points were in the manifold before TryRestoreManifold. | Chaos/Collision/PBDCollisionConstraint.h | |
| Flags | FFlags | Chaos/Collision/PBDCollisionConstraint.h | ||
| GJKWarmStartData | FGJKSimplexData | Simplex data from the last call to GJK, used to warm-start GJK. | Chaos/Collision/PBDCollisionConstraint.h | |
| Implicit | const FImplicitObject * | Chaos/Collision/PBDCollisionConstraint.h | ||
| ImplicitTransform | FRigidTransform3 | Local-space transforms of the shape (relative to particle) | Chaos/Collision/PBDCollisionConstraint.h | |
| InitialOverlapDepenetrationVelocity | FRealSingle | If we have initial overlap, the depenetration speed. | Chaos/Collision/PBDCollisionConstraint.h | |
| LastShapeWorldPositionDelta | FVec3f | Relative transform the last time we ran the narrow phase Used to detect when the bodies have moved too far to reues the manifold | Chaos/Collision/PBDCollisionConstraint.h | |
| LastShapeWorldRotationDelta | FRotation3f | Chaos/Collision/PBDCollisionConstraint.h | ||
| ManifoldPointResults | TManifoldPointArray< FManifoldPointResult > | Chaos/Collision/PBDCollisionConstraint.h | ||
| ManifoldPoints | TManifoldPointArray< FManifoldPoint > | Chaos/Collision/PBDCollisionConstraint.h | ||
| Material | FPBDCollisionConstraintMaterial | Chaos/Collision/PBDCollisionConstraint.h | ||
| MinInitialPhi | FRealSingle | The lowest InitialPhi value of all saved manifold points. | Chaos/Collision/PBDCollisionConstraint.h | |
| Particle | FGeometryParticleHandle * | Chaos/Collision/PBDCollisionConstraint.h | ||
| RelativeMovement | FVec3f | Relative movement on the last tick: (V0 - V1).Dt. | Chaos/Collision/PBDCollisionConstraint.h | |
| SavedManifoldPoints | TManifoldPointArray< FSavedManifoldPoint > | Chaos/Collision/PBDCollisionConstraint.h | ||
| Shape | const FShapeInstance * | Chaos/Collision/PBDCollisionConstraint.h | ||
| ShapesType | EContactShapesType | Chaos/Collision/PBDCollisionConstraint.h | ||
| ShapeWorldTransforms | FRigidTransform3 | The shape transforms at the current particle transforms. | Chaos/Collision/PBDCollisionConstraint.h | |
| Simplicial | const FBVHParticles * | Chaos/Collision/PBDCollisionConstraint.h | ||
| SolverBodies | const FSolverBody * | Chaos/Collision/PBDCollisionConstraint.h | ||
| Stiffness | FRealSingle | Chaos/Collision/PBDCollisionConstraint.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void Activate
(
const FReal Dt |
Chaos/Collision/PBDCollisionConstraint.h | ||
void Activate () |
Called each frame when the constraint is active after primary collision detection (but not per incremental collision detection call if enabled) | Chaos/Collision/PBDCollisionConstraint.h | |
void AddIncrementalManifoldContact
(
const FContactPoint& ContactPoint |
Chaos/Collision/PBDCollisionConstraint.h | ||
void AddOneshotManifoldContact
(
const FContactPointf& ContactPoint |
Chaos/Collision/PBDCollisionConstraint.h | ||
void BeginTick() |
A tick reset called on all constraints that were Activated last tick. | Chaos/Collision/PBDCollisionConstraint.h | |
FVec3 CalculateWorldContactLocation() |
Get the world-space contact location of the closest manifold point | Chaos/Collision/PBDCollisionConstraint.h | |
FVec3 CalculateWorldContactNormal() |
Get the world-space normal of the closest manifold point | Chaos/Collision/PBDCollisionConstraint.h | |
void ClearMaterialProperties() |
Called to force the contact to recollect its material properties (e.g., when materials are modified) | Chaos/Collision/PBDCollisionConstraint.h | |
void CorrectManifoldPoints() |
Fix the contact points when we move the particle after collision detection so that the contact points on each body are aligned along the normal (required for static friction tracking) | Chaos/Collision/PBDCollisionConstraint.h | |
void DisableManifoldPoint
(
const int32 DisabledManifoldPointIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
Private::FImplicitBoundsTestFlags GetBoundsTestFlags() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool GetCanRestoreManifold() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool GetCCDEnabled () |
Whether CCD is enabled for this collision. | Chaos/Collision/PBDCollisionConstraint.h | |
FReal GetCCDEnablePenetration() |
If CCD is enabled, contacts deeper than this will be handled by CCD. | Chaos/Collision/PBDCollisionConstraint.h | |
bool GetCCDSweepEnabled () |
For CCD constraints, a transient flag (reset every frame) that is used to both enable/disable CCD sweeps for the frame, and to report whether the sweep was run and the results retained. | Chaos/Collision/PBDCollisionConstraint.h | |
FReal GetCCDTargetPenetration() |
If CCD is enabled and processed the contact, CCD resolution leaves up to this much penetration. | Chaos/Collision/PBDCollisionConstraint.h | |
FReal GetCCDTimeOfImpact() |
Time of impact from CCD sweep test if CCD is activate.Otherwise undefined. | Chaos/Collision/PBDCollisionConstraint.h | |
const FManifoldPoint * GetClosestManifoldPoint() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FReal GetCollisionMargin0() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FReal GetCollisionMargin1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FPBDCollisionConstraintMaterial & GetCollisionMaterial() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FBVHParticles * GetCollisionParticles
(
const int32 ParticleIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FBVHParticles * GetCollisionParticles0() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FBVHParticles * GetCollisionParticles1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FReal GetCollisionRadius0() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FReal GetCollisionRadius1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
Private::FCollisionSortKey GetCollisionSortKey() |
A key that uniquely identifies a collision constraint and provides a good sort order for the solver | Chaos/Collision/PBDCollisionConstraint.h | |
ECollisionConstraintDirection GetConstraintDirection
(
const FReal Dt |
Determine the constraint direction based on Normal and Phi. | Chaos/Collision/PBDCollisionConstraint.h | |
| Chaos/Collision/PBDCollisionConstraint.h | |||
const FPBDCollisionConstraintHandle * GetConstraintHandle () |
Chaos/Collision/PBDCollisionConstraint.h | ||
FReal GetCullDistance() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FRealSingle GetCullDistancef() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool GetDisabled() |
Whether this constraint was disabled by the user (e.g., via a collision callback) | Chaos/Collision/PBDCollisionConstraint.h | |
FReal GetDynamicFriction() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FGJKSimplexData & GetGJKWarmStartData() |
The GJK warm-start data. This is updated directly in the narrow phase. | Chaos/Collision/PBDCollisionConstraint.h | |
const FImplicitObject * GetImplicit
(
const int32 ParticleIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FImplicitObject * GetImplicit0() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FImplicitObject * GetImplicit1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FRealSingle GetInitialOverlapDepenetrationVelocity() |
Initial overlap depenetration velocity from the maximum of the two bodies. | Chaos/Collision/PBDCollisionConstraint.h | |
FReal GetInvInertiaScale0() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FReal GetInvInertiaScale1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FReal GetInvMassScale0() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FReal GetInvMassScale1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool GetIsOneWayInteraction() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool GetIsProbe() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FManifoldPoint & GetManifoldPoint
(
const int32 PointIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
FManifoldPoint & GetManifoldPoint
(
const int32 PointIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FManifoldPointResult & GetManifoldPointResult
(
const int32 PointIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
| Chaos/Collision/PBDCollisionConstraint.h | |||
TArrayView< const FManifoldPoint > GetManifoldPoints () |
Chaos/Collision/PBDCollisionConstraint.h | ||
FReal GetMinFrictionPushOut() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FRealSingle GetMinInitialPhi() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FGeometryParticleHandle * GetParticle
(
const int32 ParticleIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
FGeometryParticleHandle * GetParticle0() |
API | Chaos/Collision/PBDCollisionConstraint.h | |
FGeometryParticleHandle * GetParticle1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
Private::FCollisionParticlePairKey GetParticlePairKey() |
A key used to uniquely identify the constraint (it is based on the two particle IDs) | Chaos/Collision/PBDCollisionConstraint.h | |
FReal GetPhi() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FVec3f GetRelativeMovement() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FReal GetRestitution() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FReal GetRestitutionThreshold() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FSavedManifoldPoint & GetSavedManifoldPoint
(
const int32 PointIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FShapeInstance * GetShape
(
const int32 ParticleIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FShapeInstance * GetShape0() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FShapeInstance * GetShape1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FRigidTransform3 & GetShapeRelativeTransform
(
const int32 ParticleIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FRigidTransform3 & GetShapeRelativeTransform0() |
Particle-relative transform of each collision shape in the constraint. | Chaos/Collision/PBDCollisionConstraint.h | |
const FRigidTransform3 & GetShapeRelativeTransform1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
EContactShapesType GetShapesType() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FRigidTransform3 & GetShapeWorldTransform
(
const int32 ParticleIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FRigidTransform3 & GetShapeWorldTransform0() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FRigidTransform3 & GetShapeWorldTransform1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FRealSingle GetSoftSeparation() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FSolverBody * GetSolverBody0() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const FSolverBody * GetSolverBody1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FReal GetStaticFriction() |
Chaos/Collision/PBDCollisionConstraint.h | ||
FReal GetStiffness() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool GetUseIncrementalCollisionDetection() |
Whether we run collision detection every iteration (true if we are not using one shot manifolds) NOTE: This is initially set based on whether are allowing incremental manifolds | Chaos/Collision/PBDCollisionConstraint.h | |
bool GetUseIncrementalManifold() |
Whether we can use incremental manifolds (updated each iteration) | Chaos/Collision/PBDCollisionConstraint.h | |
bool GetUseManifold() |
Whether we are using manifolds (either one-shot or incremental) | Chaos/Collision/PBDCollisionConstraint.h | |
const bool HasQuadraticShape() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool IsCurrent () |
Was this constraint activated this frame? It will be activated if the shapes are within CullDistance of each other. | Chaos/Collision/PBDCollisionConstraint.h | |
bool IsInitialContact() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool IsManifoldPointActive
(
const int32 PointIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
const bool IsQuadratic0() |
Chaos/Collision/PBDCollisionConstraint.h | ||
const bool IsQuadratic1() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool IsSoftContact() |
Chaos/Collision/PBDCollisionConstraint.h | ||
int32 NumEnabledManifoldPoints() |
Chaos/Collision/PBDCollisionConstraint.h | ||
int32 NumManifoldPoints() |
Chaos/Collision/PBDCollisionConstraint.h | ||
int32 NumSavedManifoldPoints() |
Chaos/Collision/PBDCollisionConstraint.h | ||
void ResetActiveManifoldContacts() |
Chaos/Collision/PBDCollisionConstraint.h | ||
void ResetCCDTimeOfImpact() |
Initialize the CCD TOI to the highest possible value | Chaos/Collision/PBDCollisionConstraint.h | |
void ResetManifold() |
Clear the current and previous manifolds. | Chaos/Collision/PBDCollisionConstraint.h | |
void ResetModifications () |
Reset the material properties to those from the shape materials. | Chaos/Collision/PBDCollisionConstraint.h | |
void ResetPhi
(
FReal InPhi |
Chaos/Collision/PBDCollisionConstraint.h | ||
void ResetSavedManifoldPoints() |
Clear the saved manifold points. This effectively resets friction anchors. | Chaos/Collision/PBDCollisionConstraint.h | |
void ResetSolverResults() |
Chaos/Collision/PBDCollisionConstraint.h | ||
void RestoreFrom
(
const FPBDCollisionConstraint& Source |
Restore the properties of a collision from the properties of another. | Chaos/Collision/PBDCollisionConstraint.h | |
void SetCCDEnabled
(
const bool bCCDEnabled |
Enable or disable CCD for this constraint. Called once right after the constraint is created. | Chaos/Collision/PBDCollisionConstraint.h | |
void SetCCDResults
(
const FVec3& InNetImpulse |
Store the results of CCD contact resolution, if active. | Chaos/Collision/PBDCollisionConstraint.h | |
void SetCCDSweepEnabled
(
const bool bCCDSweepEnabled |
For CCD constraints, a transient flag (reset every frame) that is used to both enable/disable CCD sweeps for the frame, and to retport whether the sweep was run and the results retained. | Chaos/Collision/PBDCollisionConstraint.h | |
void SetCCDTimeOfImpact
(
const FReal TOI |
Set the CCD TOI from the collision detection sweep. | Chaos/Collision/PBDCollisionConstraint.h | |
void SetCollisionSortKey
(
const Private::FCollisionSortKey& InCollisionSortKey |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetCullDistance
(
FReal InCullDistance |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetDisabled
(
bool bInDisabled |
Allow the user to disable this constraint. | Chaos/Collision/PBDCollisionConstraint.h | |
void SetDynamicFriction
(
const FReal InDynamicFriction |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetInvInertiaScale0
(
const FReal InInvInertiaScale |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetInvInertiaScale1
(
const FReal InInvInertiaScale |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetInvMassScale0
(
const FReal InInvMassScale |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetInvMassScale1
(
const FReal InInvMassScale |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetIsInitialContact
(
const bool bInIsInitialContact |
Is this considered an initial contact (i.e., contact was activated this tick, but not last) | Chaos/Collision/PBDCollisionConstraint.h | |
void SetIsProbe
(
bool bInProbe |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetLastShapeWorldTransforms
(
const FRigidTransform3& InShapeWorldTransform0, |
Set the transforms when we last ran collision detection. | Chaos/Collision/PBDCollisionConstraint.h | |
void SetMinFrictionPushOut
(
const FReal InMinFrictionPushOut |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetModifierApplied() |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetOneShotManifoldContacts
(
const TArrayView< const FContactPoint >& ContactPoints |
Replace the current manifold points with the input. The input array should contain no more than MaxManifoldPoints contacts (any extra will be ignored). We assume that all input contacts have been initialized and will not return false from IsSet(). Ignores contacts deeper than the CullDistance for this constraint. | Chaos/Collision/PBDCollisionConstraint.h | |
void SetRelativeMovement
(
const FVec3f& InDelta |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetRestitution
(
const FReal InRestitution |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetRestitutionThreshold
(
const FReal InRestitutionThreshold |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetShapeWorldTransforms
(
const FRigidTransform3& InShapeWorldTransform0, |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetSoftSeparation
(
const FReal InSoftSeparation |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetSolverBodies
(
const FSolverBody* InSolverBody0, |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetSolverResults
(
const int32 ManifoldPointIndex, |
Store the data from the solver that is retained between ticks for the specified manifold point or used by dependent systems (plasticity, breaking, etc.) | Chaos/Collision/PBDCollisionConstraint.h | |
void SetStaticFriction
(
const FReal InStaticFriction |
Chaos/Collision/PBDCollisionConstraint.h | ||
void SetStiffness
(
FReal InStiffness |
Chaos/Collision/PBDCollisionConstraint.h | ||
FString ToString() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool TryAddManifoldContact
(
const FContactPoint& ContactPoint |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool TryInsertManifoldContact
(
const FContactPoint& ContactPoint |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool TryRestoreManifold() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool UpdateAndTryRestoreManifold() |
Chaos/Collision/PBDCollisionConstraint.h | ||
void UpdateManifoldContacts() |
Chaos/Collision/PBDCollisionConstraint.h | ||
void UpdateMaterialProperties () |
Find the material for this contact and collect the friction, restitution, etc. | Chaos/Collision/PBDCollisionConstraint.h | |
void UpdateParticleTransform
(
FGeometryParticleHandle* InParticle |
When a particle is moved under user control, we need to update some cached state to prevent friction from undoing the move. | Chaos/Collision/PBDCollisionConstraint.h | |
bool UsePerContactInitialPhi() |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool WasManifoldRestored() |
Whether this constraint was fully restored from a previous tick, and the manifold should be reused as-is. | Chaos/Collision/PBDCollisionConstraint.h |
Overridden from FConstraintHandle
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual FVec3f GetNetLinearImpulse() |
The total impulse for a collision constraint is computed summing over the net impulse of all manifold points. | Chaos/Collision/PBDCollisionConstraint.h | |
virtual bool IsSleeping() |
Chaos/Collision/PBDCollisionConstraint.h | ||
virtual void SetIsSleeping
(
const bool bInIsSleeping |
Chaos/Collision/PBDCollisionConstraint.h | ||
virtual bool SupportsPartialIslandSleeping() |
Can this constraint connect sleeping and active particles for partial island sleeping? | Chaos/Collision/PBDCollisionConstraint.h | |
virtual bool SupportsSleeping() |
Does this constraint have the concept of sleep? (only really used for debug validation) | Chaos/Collision/PBDCollisionConstraint.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
int32 AddManifoldPoint
(
const FContactPointf& ContactPoint |
Chaos/Collision/PBDCollisionConstraint.h | ||
bool AreMatchingContactPoints
(
const FContactPoint& A, |
Chaos/Collision/PBDCollisionConstraint.h | ||
void AssignSavedManifoldPoints() |
Chaos/Collision/PBDCollisionConstraint.h | ||
int32 FindManifoldPoint
(
const FContactPoint& ContactPoint |
Chaos/Collision/PBDCollisionConstraint.h | ||
int32 FindSavedManifoldPoint
(
const int32 ManifoldPointIndex, |
Chaos/Collision/PBDCollisionConstraint.h | ||
int32 FindSimpleSavedManifoldPoint
(
const int32 ManifoldPointIndex |
Chaos/Collision/PBDCollisionConstraint.h | ||
| Chaos/Collision/PBDCollisionConstraint.h | |||
| Access to the data used by the container. | Chaos/Collision/PBDCollisionConstraint.h | ||
void InitCCDThreshold() |
Chaos/Collision/PBDCollisionConstraint.h | ||
void InitManifoldPoint
(
const int32 ManifoldPointIndex, |
Chaos/Collision/PBDCollisionConstraint.h | ||
void InitMarginsAndTolerances
(
const EImplicitObjectType ImplicitType0, |
Chaos/Collision/PBDCollisionConstraint.h | ||
void Setup
(
const ECollisionCCDType InCCDType, |
Set all the data not initialized in the constructor. | Chaos/Collision/PBDCollisionConstraint.h | |
void UpdateManifoldPointPhi
(
const int32 ManifoldPointIndex |
Update the store Phi for the manifold point based on current world-space shape transforms | Chaos/Collision/PBDCollisionConstraint.h | |
void UpdateMassScales() |
Chaos/Collision/PBDCollisionConstraint.h | ||
void UpdateMaterialPropertiesImpl() |
Chaos/Collision/PBDCollisionConstraint.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static void Make
(
FGeometryParticleHandle* Particle0, |
Create a contact constraint Initializes a constraint stored inline in an object. Only intended to be called once right after construction. Does not reinitialize all data so not intended to reset a constraint for reuse with different particles etc. | Chaos/Collision/PBDCollisionConstraint.h | |
static FPBDCollisionConstraint MakeCopy
(
const FPBDCollisionConstraint& Source |
Return a constraint copied from the Source constraint, for use in the Resim Cache or other system. | Chaos/Collision/PBDCollisionConstraint.h | |
static FPBDCollisionConstraint MakeTriangle
(
const FImplicitObject* Implicit0 |
For use by the tri mesh and heighfield collision detection as a temporary measure. | Chaos/Collision/PBDCollisionConstraint.h |