|
| CHAOS_API void | RestoreFrom (const FPBDCollisionConstraint &Source) |
| |
| | FPBDCollisionConstraint () |
| |
| virtual CHAOS_API | ~FPBDCollisionConstraint () |
| |
| bool | GetCCDEnabled () const |
| |
| void | SetCCDEnabled (const bool bCCDEnabled) |
| |
| bool | GetCCDSweepEnabled () const |
| |
| void | SetCCDSweepEnabled (const bool bCCDSweepEnabled) |
| |
| FReal | GetCCDEnablePenetration () const |
| | If CCD is enabled, contacts deeper than this will be handled by CCD.
|
| |
| FReal | GetCCDTargetPenetration () const |
| | If CCD is enabled and processed the contact, CCD resolution leaves up to this much penetration.
|
| |
| FGeometryParticleHandle * | GetParticle0 () const |
| |
| FGeometryParticleHandle * | GetParticle1 () const |
| |
| FGeometryParticleHandle * | GetParticle (const int32 ParticleIndex) const |
| |
| const FImplicitObject * | GetImplicit0 () const |
| |
| const FImplicitObject * | GetImplicit1 () const |
| |
| const FImplicitObject * | GetImplicit (const int32 ParticleIndex) const |
| |
| const FShapeInstance * | GetShape0 () const |
| |
| const FShapeInstance * | GetShape1 () const |
| |
| const FShapeInstance * | GetShape (const int32 ParticleIndex) const |
| |
| const FBVHParticles * | GetCollisionParticles0 () const |
| |
| const FBVHParticles * | GetCollisionParticles1 () const |
| |
| const FBVHParticles * | GetCollisionParticles (const int32 ParticleIndex) const |
| |
| const FReal | GetCollisionMargin0 () const |
| |
| const FReal | GetCollisionMargin1 () const |
| |
| const bool | IsQuadratic0 () const |
| |
| const bool | IsQuadratic1 () const |
| |
| const bool | HasQuadraticShape () const |
| |
| const FReal | GetCollisionRadius0 () const |
| |
| const FReal | GetCollisionRadius1 () const |
| |
| CHAOS_API void | Activate () |
| |
| void | Activate (const FReal Dt) |
| |
| CHAOS_API void | UpdateParticleTransform (FGeometryParticleHandle *InParticle) |
| |
| void | ResetPhi (FReal InPhi) |
| |
| FReal | GetPhi () const |
| |
| void | BeginTick () |
| |
| bool | IsCurrent () const |
| |
| void | SetDisabled (bool bInDisabled) |
| |
| bool | GetDisabled () const |
| |
| bool | GetIsOneWayInteraction () const |
| |
| void | SetIsProbe (bool bInProbe) |
| |
| bool | GetIsProbe () const |
| |
| void | SetIsInitialContact (const bool bInIsInitialContact) |
| |
| bool | IsInitialContact () const |
| |
| FRealSingle | GetMinInitialPhi () const |
| |
| bool | UsePerContactInitialPhi () const |
| |
| virtual bool | SupportsSleeping () const override final |
| |
| virtual bool | SupportsPartialIslandSleeping () const override final |
| |
| virtual CHAOS_API bool | IsSleeping () const override final |
| |
| virtual CHAOS_API void | SetIsSleeping (const bool bInIsSleeping) override final |
| |
| virtual CHAOS_API FVec3f | GetNetLinearImpulse () const override final |
| |
| CHAOS_API FVec3 | CalculateWorldContactNormal () const |
| |
| CHAOS_API FVec3 | CalculateWorldContactLocation () const |
| |
| void | ClearMaterialProperties () |
| |
| void | UpdateMaterialProperties () |
| |
| void | SetModifierApplied () |
| |
| const FPBDCollisionConstraintMaterial & | GetCollisionMaterial () const |
| |
| void | SetInvMassScale0 (const FReal InInvMassScale) |
| |
| FReal | GetInvMassScale0 () const |
| |
| void | SetInvMassScale1 (const FReal InInvMassScale) |
| |
| FReal | GetInvMassScale1 () const |
| |
| void | SetInvInertiaScale0 (const FReal InInvInertiaScale) |
| |
| FReal | GetInvInertiaScale0 () const |
| |
| void | SetInvInertiaScale1 (const FReal InInvInertiaScale) |
| |
| FReal | GetInvInertiaScale1 () const |
| |
| void | SetStiffness (FReal InStiffness) |
| |
| FReal | GetStiffness () const |
| |
| void | SetRestitution (const FReal InRestitution) |
| |
| FReal | GetRestitution () const |
| |
| void | SetRestitutionThreshold (const FReal InRestitutionThreshold) |
| |
| FReal | GetRestitutionThreshold () const |
| |
| void | SetStaticFriction (const FReal InStaticFriction) |
| |
| FReal | GetStaticFriction () const |
| |
| void | SetDynamicFriction (const FReal InDynamicFriction) |
| |
| FReal | GetDynamicFriction () const |
| |
| void | SetMinFrictionPushOut (const FReal InMinFrictionPushOut) |
| |
| FReal | GetMinFrictionPushOut () const |
| |
| bool | IsSoftContact () const |
| |
| void | SetSoftSeparation (const FReal InSoftSeparation) |
| |
| FRealSingle | GetSoftSeparation () const |
| |
| EContactShapesType | GetShapesType () const |
| |
| CHAOS_API FString | ToString () const |
| |
| FReal | GetCullDistance () const |
| |
| FRealSingle | GetCullDistancef () const |
| |
| void | SetCullDistance (FReal InCullDistance) |
| |
| FVec3f | GetRelativeMovement () const |
| |
| void | SetRelativeMovement (const FVec3f &InDelta) |
| |
| bool | GetUseManifold () const |
| |
| bool | GetUseIncrementalManifold () const |
| |
| bool | GetUseIncrementalCollisionDetection () const |
| |
| FRealSingle | GetInitialOverlapDepenetrationVelocity () const |
| |
| void | ResetModifications () |
| |
| CHAOS_API void | ResetManifold () |
| | Clear the current and previous manifolds.
|
| |
| TArrayView< FManifoldPoint > | GetManifoldPoints () |
| |
| TArrayView< const FManifoldPoint > | GetManifoldPoints () const |
| |
| int32 | NumManifoldPoints () const |
| |
| FManifoldPoint & | GetManifoldPoint (const int32 PointIndex) |
| |
| const FManifoldPoint & | GetManifoldPoint (const int32 PointIndex) const |
| |
| const FManifoldPoint * | GetClosestManifoldPoint () const |
| |
| bool | IsManifoldPointActive (const int32 PointIndex) const |
| |
| const FManifoldPointResult & | GetManifoldPointResult (const int32 PointIndex) const |
| |
| int32 | NumEnabledManifoldPoints () const |
| |
| void | DisableManifoldPoint (const int32 DisabledManifoldPointIndex) |
| |
| CHAOS_API void | AddIncrementalManifoldContact (const FContactPoint &ContactPoint) |
| |
| void | AddOneshotManifoldContact (const FContactPointf &ContactPoint) |
| |
| 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_API void | CorrectManifoldPoints () |
| |
| CHAOS_API void | UpdateManifoldContacts () |
| |
| const FRigidTransform3 & | GetShapeRelativeTransform0 () const |
| |
| const FRigidTransform3 & | GetShapeRelativeTransform1 () const |
| |
| const FRigidTransform3 & | GetShapeRelativeTransform (const int32 ParticleIndex) const |
| |
| const FRigidTransform3 & | GetShapeWorldTransform0 () const |
| |
| const FRigidTransform3 & | GetShapeWorldTransform1 () const |
| |
| const FRigidTransform3 & | GetShapeWorldTransform (const int32 ParticleIndex) const |
| |
| void | SetShapeWorldTransforms (const FRigidTransform3 &InShapeWorldTransform0, const FRigidTransform3 &InShapeWorldTransform1) |
| |
| void | SetLastShapeWorldTransforms (const FRigidTransform3 &InShapeWorldTransform0, const FRigidTransform3 &InShapeWorldTransform1) |
| |
| bool | GetCanRestoreManifold () const |
| |
| CHAOS_API bool | TryRestoreManifold () |
| |
| CHAOS_API void | ResetActiveManifoldContacts () |
| |
| CHAOS_API bool | TryAddManifoldContact (const FContactPoint &ContactPoint) |
| |
| CHAOS_API bool | TryInsertManifoldContact (const FContactPoint &ContactPoint) |
| |
| FGJKSimplexData & | GetGJKWarmStartData () |
| |
| const FSolverBody * | GetSolverBody0 () const |
| |
| const FSolverBody * | GetSolverBody1 () const |
| |
| void | SetSolverBodies (const FSolverBody *InSolverBody0, const FSolverBody *InSolverBody1) |
| |
| bool | WasManifoldRestored () const |
| | Whether this constraint was fully restored from a previous tick, and the manifold should be reused as-is.
|
| |
| CHAOS_API ECollisionConstraintDirection | GetConstraintDirection (const FReal Dt) const |
| |
| void | ResetSavedManifoldPoints () |
| | Clear the saved manifold points. This effectively resets friction anchors.
|
| |
| int32 | NumSavedManifoldPoints () const |
| |
| const FSavedManifoldPoint & | GetSavedManifoldPoint (const int32 PointIndex) const |
| |
| FReal | GetCCDTimeOfImpact () const |
| | Time of impact from CCD sweep test if CCD is activate.Otherwise undefined.
|
| |
| void | SetCCDTimeOfImpact (const FReal TOI) |
| | Set the CCD TOI from the collision detection sweep.
|
| |
| void | ResetCCDTimeOfImpact () |
| |
| void | SetCCDResults (const FVec3 &InNetImpulse) |
| | Store the results of CCD contact resolution, if active.
|
| |
| FORCEINLINE void | ResetSolverResults () |
| |
| FORCEINLINE void | SetSolverResults (const int32 ManifoldPointIndex, const FVec3f &NetPushOut, const FVec3f &NetImpulse, const FRealSingle StaticFrictionRatio, const FRealSingle Dt) |
| | Store the data from the solver that is retained between ticks for the specified manifold point or used by dependent systems (plasticity, breaking, etc.)
|
| |
| Private::FCollisionParticlePairKey | GetParticlePairKey () const |
| |
| Private::FCollisionSortKey | GetCollisionSortKey () const |
| |
| void | SetCollisionSortKey (const Private::FCollisionSortKey &InCollisionSortKey) |
| |
| Private::FImplicitBoundsTestFlags | GetBoundsTestFlags () const |
| |
| const FPBDCollisionConstraintHandle * | GetConstraintHandle () const |
| |
| FPBDCollisionConstraintHandle * | GetConstraintHandle () |
| |
| bool | UpdateAndTryRestoreManifold () |
| |
Public Member Functions inherited from Chaos::FPBDCollisionConstraintHandle |
| | FPBDCollisionConstraintHandle () |
| |
| const FPBDCollisionConstraint & | GetContact () const |
| |
| FPBDCollisionConstraint & | GetContact () |
| |
| const FPBDCollisionConstraint & | GetPointContact () const |
| |
| FPBDCollisionConstraint & | GetPointContact () |
| |
| const FPBDCollisionConstraint & | GetSweptPointContact () const |
| |
| FPBDCollisionConstraint & | GetSweptPointContact () |
| |
| bool | GetCCDEnabled () const |
| |
| virtual void | SetEnabled (bool InEnabled) override final |
| |
| virtual bool | IsEnabled () const override final |
| |
| virtual bool | IsProbe () const override final |
| |
| FVec3 | GetAccumulatedImpulse () const |
| |
| virtual FParticlePair | GetConstrainedParticles () const override final |
| |
| const FPBDCollisionConstraints * | ConcreteContainer () const |
| |
| FPBDCollisionConstraints * | ConcreteContainer () |
| |
Public Member Functions inherited from Chaos::TIntrusiveConstraintHandle< FPBDCollisionConstraint > |
| | TIntrusiveConstraintHandle () |
| |
| void | SetContainer (FPBDConstraintContainer *InContainer) |
| |
| FConstraint * | GetConstraint () |
| |
| const FConstraint * | GetConstraint () const |
| |
Public Member Functions inherited from Chaos::FIntrusiveConstraintHandle |
| | FIntrusiveConstraintHandle () |
| |
| void | SetContainer (FPBDConstraintContainer *InContainer) |
| |
Public Member Functions inherited from Chaos::FConstraintHandle |
| | FConstraintHandle () |
| |
| | FConstraintHandle (FPBDConstraintContainer *InContainer) |
| |
| virtual | ~FConstraintHandle () |
| |
| virtual bool | IsValid () const |
| |
| FPBDConstraintContainer * | GetContainer () |
| |
| const FPBDConstraintContainer * | GetContainer () const |
| |
| bool | IsInConstraintGraph () const |
| |
| Private::FPBDIslandConstraint * | GetConstraintGraphEdge () const |
| |
| void | SetConstraintGraphEdge (Private::FPBDIslandConstraint *InEdge) |
| |
| virtual bool | WasAwakened () const |
| |
| virtual void | SetWasAwakened (const bool bInWasAwakened) |
| |
| int32 | GetContainerId () const |
| |
| template<typename T > |
| T * | As () |
| |
| template<typename T > |
| const T * | As () const |
| |
| template<typename T > |
| T * | AsUnsafe () |
| |
| template<typename T > |
| const T * | AsUnsafe () const |
| |
| const FConstraintHandleTypeID & | GetType () const |
| |
| | UE_DEPRECATED (5.3, "Use GetConstraintGraphEdge") int32 GetConstraintGraphIndex() const |
| |
| | UE_DEPRECATED (5.3, "Not supported") void SetConstraintGraphIndex(const int32 InIndex) const |
| |
A contact constraint.
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.