Navigation
API > API/Runtime > API/Runtime/Chaos
A container and solver for collision constraints.
| Name | FPBDCollisionConstraints |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/PBDCollisionConstraints.h |
| Include Path | #include "Chaos/PBDCollisionConstraints.h" |
Syntax
class FPBDCollisionConstraints : public Chaos::FPBDConstraintContainer
Inheritance Hierarchy
- FPBDConstraintContainer → FPBDCollisionConstraints
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FPBDCollisionConstraints
(
const FPBDRigidsSOAs& InParticles, |
Chaos/PBDCollisionConstraints.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FPBDCollisionConstraints() |
Chaos/PBDCollisionConstraints.h |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| Base | FPBDIndexedConstraintContainer | Chaos/PBDCollisionConstraints.h | |
| FConstHandles | TArrayView< const FPBDCollisionConstraint *const > | Chaos/PBDCollisionConstraints.h | |
| FConstraintContainerHandle | FPBDCollisionConstraintHandle | For use by dependent types. | Chaos/PBDCollisionConstraints.h |
| FHandles | TArrayView< FPBDCollisionConstraint *const > | Collision constraints have intrusive pointers. An array of constraint pointers can be uased as an array of handle pointers. | Chaos/PBDCollisionConstraints.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bCanDisableContacts | bool | This is passed to IterationParameters. | Chaos/PBDCollisionConstraints.h | |
| bEnableCollisions | bool | Chaos/PBDCollisionConstraints.h | ||
| bEnableEdgePruning | bool | Chaos/PBDCollisionConstraints.h | ||
| bEnableRestitution | bool | Chaos/PBDCollisionConstraints.h | ||
| bHandlesEnabled | bool | Chaos/PBDCollisionConstraints.h | ||
| bIsDeterministic | bool | Chaos/PBDCollisionConstraints.h | ||
| CollisionSolverType | Private::ECollisionSolverType | Chaos/PBDCollisionConstraints.h | ||
| ConstraintAllocator | Private::FCollisionConstraintAllocator | Chaos/PBDCollisionConstraints.h | ||
| DetectorSettings | FCollisionDetectorSettings | Settings for collision detection. | Chaos/PBDCollisionConstraints.h | |
| GravityDirection | FVec3 | Used to determine constraint directions. | Chaos/PBDCollisionConstraints.h | |
| GravitySize | FReal | Chaos/PBDCollisionConstraints.h | ||
| MCollided | TArrayCollectionArray< bool > & | Chaos/PBDCollisionConstraints.h | ||
| MPerParticlePhysicsMaterials | const TArrayCollectionArray< TUniquePtr< FChaosPhysicsMaterial > > & | Chaos/PBDCollisionConstraints.h | ||
| MPhysicsMaterials | const TArrayCollectionArray< TSerializablePtr< FChaosPhysicsMaterial > > & | Chaos/PBDCollisionConstraints.h | ||
| NumActivePointConstraints | int32 | Chaos/PBDCollisionConstraints.h | ||
| Particles | const FPBDRigidsSOAs & | Chaos/PBDCollisionConstraints.h | ||
| RestitutionThreshold | FReal | Chaos/PBDCollisionConstraints.h | ||
| SimMaterials | const THandleArray< FChaosPhysicsMaterial > *const | Chaos/PBDCollisionConstraints.h | ||
| SolverSettings | FPBDCollisionSolverSettings | Settings for the low-level collision solvers. | Chaos/PBDCollisionConstraints.h | |
| TempCollisions | TArray< FPBDCollisionConstraintHandle * > | Chaos/PBDCollisionConstraints.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void ApplyCCDModifier
(
const TArray< ISimCallbackObject* >& CCDModifiers, |
Apply modifiers to CCD results | Chaos/PBDCollisionConstraints.h | |
void ApplyCollisionModifier
(
const TArray< ISimCallbackObject* >& CollisionModifiers, |
Apply modifiers to the constraints and specify which constraints should be disabled. | Chaos/PBDCollisionConstraints.h | |
void ApplyMidPhaseModifier
(
const TArray< ISimCallbackObject* >& MidPhaseModifiers, |
Apply modifiers to particle pair midphases | Chaos/PBDCollisionConstraints.h | |
void BeginDetectCollisions() |
Called before collision detection to reset contacts. | Chaos/PBDCollisionConstraints.h | |
void BeginFrame() |
Clears the list of active constraints. | Chaos/PBDCollisionConstraints.h | |
void DetectProbeCollisions
(
FReal Dt |
Called after collision resolution in order to detect probes. | Chaos/PBDCollisionConstraints.h | |
void DisableConstraints
(
const TSet< FGeometryParticleHandle* >& ParticleHandle |
Disable the constraints associated with the ParticleHandle. | Chaos/PBDCollisionConstraints.h | |
void DisableHandles () |
Put the container in "no handles" mode for use with simple solver. | Chaos/PBDCollisionConstraints.h | |
virtual void DisconnectConstraints
(
const TSet< FGeometryParticleHandle* >& ParticleHandles |
Remove all constraints associated with the particles - called when particles are destroyed. | Chaos/PBDCollisionConstraints.h | |
void EndDetectCollisions() |
Called after collision detection to finalize the contacts. | Chaos/PBDCollisionConstraints.h | |
bool GetCanDisableContacts() |
Chaos/PBDCollisionConstraints.h | ||
bool GetCollisionsEnabled() |
Chaos/PBDCollisionConstraints.h | ||
const FPBDCollisionConstraint & GetConstConstraint
(
int32 Index |
Chaos/PBDCollisionConstraints.h | ||
FConstHandles GetConstConstraintHandles() |
Chaos/PBDCollisionConstraints.h | ||
const FPBDCollisionConstraint & GetConstraint
(
int32 Index |
Chaos/PBDCollisionConstraints.h | ||
Private::FCollisionConstraintAllocator & GetConstraintAllocator() |
Chaos/PBDCollisionConstraints.h | ||
FHandles GetConstraintHandles() |
Chaos/PBDCollisionConstraints.h | ||
TArrayView< FPBDCollisionConstraint *const > GetConstraints() |
Chaos/PBDCollisionConstraints.h | ||
const FCollisionDetectorSettings & GetDetectorSettings() |
Chaos/PBDCollisionConstraints.h | ||
FVec3 GetGravityDirection() |
Chaos/PBDCollisionConstraints.h | ||
FReal GetGravitySize() |
Chaos/PBDCollisionConstraints.h | ||
bool GetHandlesEnabled() |
Whether this container provides constraint handles (simple solvers do not need them) | Chaos/PBDCollisionConstraints.h | |
bool GetIsDeterministic() |
Get determinism. Support for determinism requires that we sort active constraints each tick, so there is additional cost. | Chaos/PBDCollisionConstraints.h | |
const FString & GetName() |
Chaos/PBDCollisionConstraints.h | ||
bool GetRestitutionEnabled() |
Chaos/PBDCollisionConstraints.h | ||
FReal GetRestitutionThreshold() |
Chaos/PBDCollisionConstraints.h | ||
const FPBDCollisionSolverSettings & GetSolverSettings() |
Chaos/PBDCollisionConstraints.h | ||
Private::ECollisionSolverType GetSolverType() |
The type of solver we are creating. | Chaos/PBDCollisionConstraints.h | |
bool IsShockPropagationEnabled() |
Chaos/PBDCollisionConstraints.h | ||
int32 NumConstraints() |
Chaos/PBDCollisionConstraints.h | ||
void RemoveConstraints
(
const TSet< FGeometryParticleHandle* >& ParticleHandle |
Remove the constraints associated with the ParticleHandle. | Chaos/PBDCollisionConstraints.h | |
void Reset() |
Destroy all constraints | Chaos/PBDCollisionConstraints.h | |
void SetAllowManifolds
(
const bool bAllowManifolds |
Chaos/PBDCollisionConstraints.h | ||
void SetCanDisableContacts
(
bool bInCanDisableContacts |
Member Access | Chaos/PBDCollisionConstraints.h | |
void SetCollisionsEnabled
(
bool bInEnableCollisions |
Chaos/PBDCollisionConstraints.h | ||
void SetCullDistance
(
const FReal InCullDistance |
Chaos/PBDCollisionConstraints.h | ||
void SetDepenetrationVelocity
(
const FRealSingle InVel |
Chaos/PBDCollisionConstraints.h | ||
void SetDetectorSettings
(
const FCollisionDetectorSettings& InSettings |
Chaos/PBDCollisionConstraints.h | ||
void SetGravity
(
const FVec3& InGravity |
Chaos/PBDCollisionConstraints.h | ||
void SetIsDeterministic
(
const bool bInIsDeterministic |
Enable or disable determinism. Support for determinism requires that we sort active constraints each tick, so there is additional cost. | Chaos/PBDCollisionConstraints.h | |
void SetMaxPushOutVelocity
(
const FReal InMaxPushOutVelocity |
Chaos/PBDCollisionConstraints.h | ||
void SetName
(
const FSharedDebugName& InName |
Chaos/PBDCollisionConstraints.h | ||
void SetPositionFrictionIterations
(
const int32 InNumIterations |
Chaos/PBDCollisionConstraints.h | ||
void SetPositionShockPropagationIterations
(
const int32 InNumIterations |
Chaos/PBDCollisionConstraints.h | ||
void SetRestitutionEnabled
(
bool bInEnableRestitution |
Chaos/PBDCollisionConstraints.h | ||
void SetRestitutionThreshold
(
FReal InRestitutionThreshold |
Chaos/PBDCollisionConstraints.h | ||
void SetSolverSettings
(
const FPBDCollisionSolverSettings& InSettings |
Chaos/PBDCollisionConstraints.h | ||
void SetSolverType
(
const Private::ECollisionSolverType InSolverType |
Set the solver type. NOTE: Any previously created solvers will not be recreated at this level. (See FPBDRigidsEvolutionGBF::UpdateCollisionSolverType) | Chaos/PBDCollisionConstraints.h | |
void SetVelocityBoundsExpansion
(
const FReal BoundsVelocityMultiplier, |
Chaos/PBDCollisionConstraints.h | ||
void SetVelocityBoundsExpansionMACD
(
const FReal BoundsVelocityMultiplier, |
Chaos/PBDCollisionConstraints.h | ||
void SetVelocityFrictionIterations
(
const int32 InNumIterations |
Chaos/PBDCollisionConstraints.h | ||
void SetVelocityShockPropagationIterations
(
const int32 InNumIterations |
Chaos/PBDCollisionConstraints.h | ||
void UpdateConstraintMaterialProperties
(
FPBDCollisionConstraint& Contact |
Chaos/PBDCollisionConstraints.h |
Overridden from FPBDConstraintContainer
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddConstraintsToGraph
(
Private::FPBDIslandManager& IslandManager |
Add all the constraints in the container to the graph | Chaos/PBDCollisionConstraints.h | |
virtual TUniquePtr< FConstraintContainerSolver > CreateGroupSolver
(
const int32 Priority |
Create a constraint solver for an Evolution with Graph support (World evolution). | Chaos/PBDCollisionConstraints.h | |
virtual TUniquePtr< FConstraintContainerSolver > CreateSceneSolver
(
const int32 Priority |
Create a constraint solver for an Evolution without Graph support (RBAN evolution). | Chaos/PBDCollisionConstraints.h | |
virtual int32 GetNumConstraints() |
FConstraintContainer Implementation | Chaos/PBDCollisionConstraints.h | |
virtual void PrepareTick() |
Called oncer per tick to initialize buffers required for the rest of the tick | Chaos/PBDCollisionConstraints.h | |
virtual void ResetConstraints() |
Empty the constraints (must be removed from the graph first, if required) | Chaos/PBDCollisionConstraints.h | |
virtual void UnprepareTick() |
Should undo any allocations in PrepareTick | Chaos/PBDCollisionConstraints.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FPBDCollisionConstraint & GetConstraint
(
int32 Index |
Chaos/PBDCollisionConstraints.h | ||
void PruneEdgeCollisions() |
Call PruneParticleEdgeCollisions on all particles with ECollisionConstraintFlags::CCF_SmoothEdgeCollisions set in CollisionFlags. | Chaos/PBDCollisionConstraints.h |