Navigation
API > API/Runtime > API/Runtime/Chaos
Runs the solvers for a set of constraints belonging to a JointConstraints container.
For the main scene, each IslandGroup owns two TPBDJointContainerSolvers (one for linear and one for nonlinear) and the list of constraints to be solved and the order in which they are solved is determined by the constraint graph. The two TPBDJointContainerSolvers are grouped under struct FPBDJointCombinedConstraints.
For RBAN, there is one FPBDJointCombinedConstraints with two TPBDJointContainerSolvers (linear & nonlinear) that solves all joints in the simulation in the order that they occur in the container.
| Name | TPBDJointContainerSolver |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/PBDJointConstraints.h |
| Include Path | #include "Chaos/PBDJointConstraints.h" |
| Source | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/Joint/PBDJointContainerSolver.h |
Syntax
template<typename JointSolverType>
class TPBDJointContainerSolver : public Chaos::FConstraintContainerSolver
Inheritance Hierarchy
- FConstraintContainerSolver → TPBDJointContainerSolver
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
TPBDJointContainerSolver
(
FPBDJointConstraints& InConstraintContainer, |
Chaos/Joint/PBDJointContainerSolver.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
~TPBDJointContainerSolver() |
Chaos/Joint/PBDJointContainerSolver.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| ConstraintContainer | FPBDJointConstraints & | Chaos/Joint/PBDJointContainerSolver.h | ||
| ConstraintSolvers | TArray< JointSolverType > | Chaos/Joint/PBDJointContainerSolver.h | ||
| ContainerIndices | TArray< int32 > | Index remapping from respective internal index of each array to index in the joint container [0,NumJointsInWorld) | Chaos/Joint/PBDJointContainerSolver.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
const FPBDJointSettings & GetConstraintSettings
(
const int32 InConstraintIndex |
Chaos/Joint/PBDJointContainerSolver.h | ||
FPBDJointConstraints & GetContainer() |
Chaos/Joint/PBDJointContainerSolver.h | ||
int32 GetContainerConstraintIndex
(
const int32 InConstraintIndex |
Chaos/Joint/PBDJointContainerSolver.h | ||
const FPBDJointSolverSettings & GetSettings() |
Chaos/Joint/PBDJointContainerSolver.h |
Overridden from FConstraintContainerSolver
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddBodies
(
FSolverBodyContainer& SolverBodyContainer |
Add all the required bodies to the body container (required for the constraints added with AddConstraints) | Chaos/Joint/PBDJointContainerSolver.h | |
virtual void AddConstraints
(
const TArrayView< Private::FPBDIslandConstraint* >& Constraints |
Island API. | Chaos/Joint/PBDJointContainerSolver.h | |
virtual void AddConstraints () |
RBAN API. Add all (active) constraints to the solver. | Chaos/Joint/PBDJointContainerSolver.h | |
virtual void ApplyPositionConstraints
(
const FReal Dt, |
Apply the position solve to all constraints in the container | Chaos/Joint/PBDJointContainerSolver.h | |
virtual void ApplyProjectionConstraints
(
const FReal Dt, |
Apply the projection solve to all constraints in the container | Chaos/Joint/PBDJointContainerSolver.h | |
virtual void ApplyVelocityConstraints
(
const FReal Dt, |
Apply the velocity solve to all constraints in the container | Chaos/Joint/PBDJointContainerSolver.h | |
virtual void GatherInput
(
const FReal Dt |
Chaos/Joint/PBDJointContainerSolver.h | ||
virtual void GatherInput
(
const FReal Dt, |
Chaos/Joint/PBDJointContainerSolver.h | ||
virtual int32 GetNumConstraints() |
FConstraintContainerSolver impl. | Chaos/Joint/PBDJointContainerSolver.h | |
virtual void Reset
(
const int32 MaxConstraints |
Set the maximum number of constraints the solver will have to handle. | Chaos/Joint/PBDJointContainerSolver.h | |
virtual void ScatterOutput
(
const FReal Dt |
Chaos/Joint/PBDJointContainerSolver.h | ||
virtual void ScatterOutput
(
const FReal Dt, |
Chaos/Joint/PBDJointContainerSolver.h |