FPBDCollisionConstraints

A container and solver for collision constraints.

Windows
MacOS
Linux

Inheritance Hierarchy

FPBDConstraintContainer

FPBDCollisionConstraints

References

Module

Chaos

Header

/Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/PBDCollisionConstraints.h

Include

#include "Chaos/PBDCollisionConstraints.h"

Syntax

class FPBDCollisionConstraints : public Chaos::FPBDConstraintContainer

Remarks

A container and solver for collision constraints.

Constructors

Name Description

Public function

FPBDCollisionConstraints

(
    const FPBDRigidsSOAs& InParticles,
    TArrayCollectionArray< bool >& Col...,
    const TArrayCollectionArray< TSeria...,
    const TArrayCollectionArray< TUniqu...,
    const int32 ApplyPairIterations,
    const int32 ApplyPushOutPairIterati...,
    const FReal RestitutionThreshold
)

Destructors

Name Description

Public function Virtual

~FPBDCollisionConstraints()

Functions

Name Description

Public function

void

 

AddConstraint

(
    const FRigidBodySweptPointContactCo...
)

Add the constraint to the container.

Public function

void

 

AddConstraint

(
    const FRigidBodyPointContactConstra...
)

Add the constraint to the container.

Public function

bool

 

Apply

(
    const FReal Dt,
    const TArray< FPBDCollisionConstrai...,
    const int32 It,
    const int32 NumIts
)

Island Rule API

Public function

bool

 

Apply

(
    const FReal Dt,
    const int32 It,
    const int32 NumIts
)

Simple Rule API

Public function

void

 

ApplyCollisionModifier

(
    const TArray< ISimCallbackObject&#...
)

Apply modifiers to the constraints and specify which constraints should be disabled.

Public function

bool

 

ApplyPushOut

(
    const FReal Dt,
    const TArray< FPBDCollisionConstrai...,
    const TSet< const TGeometryParticle...,
    int32 Iteration,
    int32 NumIterations
)

Public function

bool

 

ApplyPushOut

(
    const FReal Dt,
    const int32 It,
    const int32 NumIts
)

Simple Rule API

Public function

FConstraintA...

 

BeginAppendScope()

Begin an append operation, recieving a helper object for bulk operations on the constraint container

Public function

void

 

ClearPostApplyCallback()

Public function

void

 

ClearPostApplyPushOutCallback()

Public function Const

bool

 

Contains

(
    const FCollisionConstraintBase*...
)

Public function

void

 

DisableConstraints

(
    const TSet< TGeometryParticleHandle...
)

Disable the constraints associated with the ParticleHandle.

Public function

void

 

DisableHandles()

Put the container in "no handles" mode for use with simple solver.

Public function Const

const TArray...

 

GetAllConstraintHandles()

Member Access

Public function Const

bool

 

GetCanDisableContacts()

Public function Const

bool

 

GetCollisionsEnabled()

Public function Const

const FHandl...

 

GetConstConstraintHandles()

Public function Const

const FColli...

 

GetConstraint

(
    int32 Index
)

Public function

FHandles &

 

GetConstraintHandles()

Public function

FCollisionCo...

 

GetConstraintsArray()

Protected function

Collisions::...

 

GetContactIterationParameters

(
    const FReal Dt,
    const int32 Iteration,
    const int32 NumIterations,
    const int32 NumPairIterations,
    bool& bNeedsAnotherIteration
)

Protected function

Collisions::...

 

GetContactParticleParameters

(
    const FReal Dt
)

Public function Const

bool

 

GetHandlesEnabled()

Whether this container provides constraint handles (simple solvers do not need them)

Public function Const

int32

 

GetPairIterations()

Public function Const

int32

 

GetPushOutPairIterations()

Public function Const

bool

 

GetRestitutionEnabled()

Public function Const

FReal

 

GetRestitutionThreshold()

Public function Const

int32

 

NumConstraints()

Public function

void

 

PrepareIteration

(
    FReal Dt
)

Public function

void

 

PrepareTick()

General Rule API

Public function

void

 

RemoveConstraint

Remove the constraint, update the handle, and any maps.

Public function

void

 

RemoveConstraints

(
    const TSet< TGeometryParticleHandle...
)

Remove the constraints associated with the ParticleHandle.

Public function

void

 

Reset()

Reset the constraint frame.

Public function

void

 

SetCanDisableContacts

(
    bool bInCanDisableContacts
)

Public function

void

 

SetCollisionsEnabled

(
    bool bInEnableCollisions
)

Public function

void

 

SetGravity

(
    const FVec3& InGravity
)

Public function

void

 

SetPairIterations

(
    int32 InPairIterations
)

Public function

void

 

SetPostApplyCallback

(
    const FRigidBodyContactConstraintsP...
)

Callbacks

Public function

void

 

SetPostApplyPushOutCallback

(
    const FRigidBodyContactConstraintsP...
)

Public function

void

 

SetPushOutPairIterations

(
    int32 InPairIterations
)

Public function

void

 

SetRestitutionEnabled

(
    bool bInEnableRestitution
)

Public function

void

 

SetRestitutionThreshold

(
    FReal InRestitutionThreshold
)

Public function

void

 

SetSolverType

(
    EConstraintSolverType InSolverType
)

Set the solver method to use in the Apply step

Public function

void

 

SortConstraints()

Sort constraints based on particle indices so that we have a deterministic solve order.

Public function

void

 

UnprepareIteration

(
    FReal Dt
)

Public function

void

 

UnprepareTick()

Protected function

void

 

UpdateConstraintMaterialProperties

(
    FCollisionConstraintBase& Contact
)

Public function

void

 

UpdateConstraints

(
    FReal Dt
)

Update all constraint values Update all constraint values

Public function

void

 

UpdateConstraints

(
    FReal Dt,
    const TSet< TGeometryParticleHandle...
)

Update all constraint values within the set

Public function

void

 

UpdatePositionBasedState

(
    const FReal Dt
)

Generate all contact constraints.

Classes

Name

Description

Public struct

FConstraintAppendScope

Helper object for efficiently appending constraints into the constraint container in a scope.

Typedefs

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss