description: Set up a manifold point ready for solving

code: void SetManifoldPoint ( const int32 ManifoldPointIndex, const int32 LaneIndex, const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FSimdManifoldPoint](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdManifoldPoint) > & ManifoldPointsBuffer, const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & InRelativeContactPosition0, const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & InRelativeContactPosition1, const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & InWorldContactNormal, const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & InWorldContactTangentU, const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & InWorldContactTangentV, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InWorldContactDeltaNormal, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InWorldContactDeltaTangentU, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InWorldContactDeltaTangentV, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InWorldContactVelocityTargetNormal, const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & Body0, const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & Body1, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvMScale0, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvIScale0, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvMScale1, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvIScale1 )


module: Chaos

code: void SetManifoldPointsBuffer ( const int32 InBeginIndex, const int32 InMax )


code: void SetNumManifoldPoints ( const [FSimdInt32](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdInt32) & InNum )


code: void SetStiffness ( const [FSimdRealf](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdRealf) InStiffness )


code: void SolvePositionNoFriction ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FSimdManifoldPoint](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdManifoldPoint) > & ManifoldPointsBuffer, const [FSimdSolverBodyPtr](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdSolverBodyPtr) & Body0, const [FSimdSolverBodyPtr](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdSolverBodyPtr) & Body1, const [FSimdRealf](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdRealf) & MaxPushOut )


code: void SolveVelocityWithFrictionImpl ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FSimdManifoldPoint](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdManifoldPoint) > & ManifoldPointsBuffer, const [FSimdSolverBodyPtr](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdSolverBodyPtr) & Body0, const [FSimdSolverBodyPtr](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdSolverBodyPtr) & Body1, const [FSimdRealf](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdRealf) & Dt, const [FSimd4Realf](API\Runtime\ChaosCore\Chaos\FSimd4Realf) & FrictionStiffnessScale )


code: void SolvePositionWithFriction ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FSimdManifoldPoint](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdManifoldPoint) > & ManifoldPointsBuffer, const [FSimdSolverBodyPtr](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdSolverBodyPtr) & Body0, const [FSimdSolverBodyPtr](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdSolverBodyPtr) & Body1, const [FSimd4Realf](API\Runtime\ChaosCore\Chaos\FSimd4Realf) & MaxPushOut, const [FSimd4Realf](API\Runtime\ChaosCore\Chaos\FSimd4Realf) & FrictionStiffnessScale )


code: void SolveVelocityWithFriction ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FSimdManifoldPoint](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdManifoldPoint) > & ManifoldPointsBuffer, const [FSimdSolverBodyPtr](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdSolverBodyPtr) & Body0, const [FSimdSolverBodyPtr](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdSolverBodyPtr) & Body1, const [FSimdRealf](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdRealf) & Dt, const [FSimd4Realf](API\Runtime\ChaosCore\Chaos\FSimd4Realf) & FrictionStiffnessScale )


code: void UpdateManifoldPointMassNormal ( const int32 ManifoldPointIndex, const int32 LaneIndex, const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FSimdManifoldPoint](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdManifoldPoint) > & ManifoldPointsBuffer, const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & Body0, const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & Body1, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvMScale0, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvIScale0, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvMScale1, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvIScale1 )


description: Update the cached mass properties based on the current body transforms.

code: void UpdateManifoldPointMass ( const int32 ManifoldPointIndex, const int32 LaneIndex, const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FSimdManifoldPoint](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdManifoldPoint) > & ManifoldPointsBuffer, const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & Body0, const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & Body1, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvMScale0, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvIScale0, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvMScale1, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvIScale1 )


code: void UpdateMassNormal ( const int32 LaneIndex, const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FSimdManifoldPoint](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdManifoldPoint) > & ManifoldPointsBuffer, const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & Body0, const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & Body1, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvMScale0, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvIScale0, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvMScale1, const [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) InvIScale1 )


description: NOTE: Does not initialize any properties. See MakeInitialized.

code: TPBDCollisionSolverSimd()


className: TPBDCollisionSolverSimd

description: Holds the solver

code: template<int TNumLanes> class TPBDCollisionSolverSimd

MaxManifoldPoints

description: Each lane has space for MaxManifoldPoints, but not all will be used Unused manifold points may be in the middle of the list (if disabled for example)

SimdDynamicFriction

type: FSimdRealf


code: void SolveVelocityNoFriction ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FSimdManifoldPoint](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdManifoldPoint) > & ManifoldPointsBuffer, const [FSimdSolverBodyPtr](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdSolverBodyPtr) & Body0, const [FSimdSolverBodyPtr](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdSolverBodyPtr) & Body1, const [FSimdRealf](API\Runtime\Chaos\Chaos\Collision\TPBDCollisionSolverSimd\FSimdRealf) & Dt )


code: virtual [bool](API\Runtime\Chaos\Chaos\Collision\Chaos__Private__bool\1) Overlap ( const [FVisitorData](API\Runtime\Chaos\Chaos\Collision\TSimSweepSQVisitor\FVisitorData) & Instance )


code: virtual [bool](API\Runtime\Chaos\Chaos\Collision\Chaos__Private__bool\1) Sweep ( const [FVisitorData](API\Runtime\Chaos\Chaos\Collision\TSimSweepSQVisitor\FVisitorData) & Instance, [FQueryFastData](API\Runtime\Chaos\Chaos\FQueryFastData) & CurData )


code: virtual [bool](API\Runtime\Chaos\Chaos\Collision\Chaos__Private__bool\1) Raycast ( const [FVisitorData](API\Runtime\Chaos\Chaos\Collision\TSimSweepSQVisitor\FVisitorData) & Instance, [FQueryFastData](API\Runtime\Chaos\Chaos\FQueryFastData) & CurData )


code: TSimSweepSQVisitor ( const TVisitor & InVisitor )


className: TSimSweepSQVisitor

description: A spatial acceleration visitor that forwards callbacks to a functor

code: template<typename TVisitor> class TSimSweepSQVisitor : public [Chaos::ISpatialVisitor< FAccelerationStructureHandle, FReal >](API\Runtime\Chaos\Chaos\ISpatialVisitor)


className: TSolverBodyPtrPairSimd

code: template<int TNumLanes> struct TSolverBodyPtrPairSimd

type: TSolverBodyPtrS...


className: TSolverBodyPtrSimd

code: typedef [TSimdValue](API\Runtime\ChaosCore\Chaos\TSimdValue)< [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) *, TNumLanes > TSolverBodyPtrSimd


className: ConsModelCaches

code: struct ConsModelCaches


code: void deltaP ( const [Chaos::PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & F, const [Chaos::PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & dF, const T mu, const T lambda, [Chaos::PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & dP )


code: void P ( const [Chaos::PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & F, const T mu, const T lambda, [Chaos::PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & P )


code: void UpdateCache ( const [Chaos::PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & F )


className: CorotatedCache

code: template<typename T> struct CorotatedCache

DInvCache

type: TArray< T >

JCache

type: T


code: template<typename T> auto Requires ( typename T::THandleType )


code: template<typename T> auto Requires()


className: CParticleView

description: Tests whether a type is actually a view on particles or just a generic type to separate some extended functionality for particle types

code: struct CParticleView


code: template<typename T> auto Requires ( T * InType, [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & InAr )


className: CSerializablePtr

code: struct CSerializablePtr


description: DECLARE_CYCLE_STAT(TEXT("Chaos XPBD Corotated Constraint"), STAT_ChaosXPBDCorotated, STATGROUP_Chaos); DECLARE_CYCLE_STAT(TEXT("Chaos XPBD Corotated Constraint Polar Compute"), STAT_ChaosXPBDCorotatedPolar, STATGROUP_Chaos); DECLARE_CYCLE_STAT(TEXT("Chaos XPBD Corotated Constraint Det Compute"), STAT_ChaosXPBDCorotatedDet, STATGROUP_Chaos);

code: namespace Chaos { namespace Softs { enum ERigidCollisionShapeType { Sphere, Box, Sphyl, Convex, TaperedCapsule, LevelSet, Unknown, } } }


code: namespace Chaos { namespace Utilities { void Chaos::Utilities::FindClosestTriangle ( const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle), 3 >> & Positions, const [TArray](API\Runtime\Core\Containers\TArray)< FIntVector3 > & SurfaceElements, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle), 3 >> & TrianglePositions, [TArray](API\Runtime\Core\Containers\TArray)< int32 > & SurfaceTriangleIndices, [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle), 3 >> & BarycentricWeights, const [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) BoxSize ) } }


code: namespace Chaos { namespace Utilities { int32 Chaos::Utilities::GetMax ( const FIntVector3 & V ) } }


code: namespace Chaos { namespace Utilities { int32 Chaos::Utilities::GetMin ( const FIntVector3 & V ) } }


code: namespace Chaos { namespace Utilities { int32 Chaos::Utilities::GetMid ( const FIntVector3 & V ) } }


code: namespace Chaos { namespace Utilities { FIntVector3 Chaos::Utilities::GetOrdered ( const FIntVector3 & V ) } }


code: namespace Chaos { namespace Utilities { FIntVector4 Chaos::Utilities::GetOrdered ( const FIntVector4 & V ) } }


code: namespace Chaos { namespace Utilities { void Chaos::Utilities::GetSurfaceElements ( const [TArray](API\Runtime\Core\Containers\TArray)< FIntVector4 > & Tets, [TArray](API\Runtime\Core\Containers\TArray)< FIntVector3 > & SurfaceElements, const bool KeepInteriorFaces, const bool InvertFaces ) } }


code: namespace Chaos { namespace Utilities { void Chaos::Utilities::GetTetFaces ( const FIntVector4 & Tet, FIntVector3 & Face1, FIntVector3 & Face2, FIntVector3 & Face3, FIntVector3 & Face4, const bool invert ) } }


className: Source

code: typedef FCollisionManagerProxy Source


className: Super

code: typedef FThreadingProxy::FBuffer Super


code: FCollisionsInputBuffer &40; const TArray< FCollisionObjectAddedBodies > & InAdded, const TArray< FCollisionObjectRemovedBodies > & InRemoved, const TArray< FCollisionObjectUpdatedBodies > & InUpdate, const UObject &42; InOwner &41;


className: FCollisionsInputBuffer

code: class FCollisionsInputBuffer : public [Chaos::Softs::FThreadingProxy::FBuffer](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy\FBuffer)

Added

type: TArray<FCollis...


code: FCollisionManagerProxy ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * InOwner )


className: FCollisionManagerProxy

code: class FCollisionManagerProxy : public [Chaos::Softs::FThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy)

CollisionBodies

type: TMap<FCollisio...


code: FCollisionObjectAddedBodies ( [FCollisionObjectKey](API\Runtime\Chaos\Chaos\Deformable\FCollisionObjectKey) InKey, FTransform InTransform, [FString](API\Runtime\Core\Containers\FString) InType, [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) * InShapes )


className: FCollisionObjectAddedBodies

code: struct FCollisionObjectAddedBodies

Key

type: FCollisionObjec...

Shapes

type: FImplicitObject...

Transform

type: FTransform

Type

type: FString


className: FCollisionObjectKey

code: typedef [TTuple](API\Runtime\Core\Misc\TTuple)< const [UObject](API\Runtime\CoreUObject\UObject\UObject) *, [ERigidCollisionShapeType](API\Runtime\Chaos\Chaos\Deformable\Chaos__Softs__ERigidCollisionSha-), int8 > FCollisionObjectKey


code: FCollisionObjectParticleHandel ( int32 InParticleIndex, int32 InActiveViewIndex, FTransform InTransform )


className: FCollisionObjectParticleHandel

code: struct FCollisionObjectParticleHandel


className: FCollisionObjectRemovedBodies

code: struct FCollisionObjectRemovedBodies


className: FCollisionObjectUpdatedBodies

code: struct FCollisionObjectUpdatedBodies


className: FDataMapValue

description: Data Transfer

code: typedef [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< const [FThreadingProxy::FBuffer](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy\FBuffer) > FDataMapValue


className: FDeformableDebugParams

code: struct FDeformableDebugParams

bDoDrawKinematicParticles

type: bool


code: FDeformablePackage ( int32 InFrame, [FDeformableDataMap](API\Runtime\Chaos\Chaos\Deformable\FDeformableDataMap) && InMap )


className: FDeformablePackage

code: struct FDeformablePackage

ObjectMap

type: FDeformableData...


code: void AddProxy ( [FThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy) * InObject )


code: void AdvanceDt ( [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) DeltaTime )


code: [TArray](API\Runtime\Core\Containers\TArray)< [Chaos::TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) > > ComputeParticleTargets ( const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & ParticleIndices )


description: Debug Output

code: void DebugDrawSimulationData()


code: void DebugDrawTetrahedralParticles ( [FFleshThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FFleshThreadingProxy) & Proxy )


code: void AddProxy &40; FThreadingProxy &42; InObject &41;


code: bool HasObject &40; UObject &42; InObject &41; const


code: TUniquePtr< FDeformablePackage > PullOutputPackage&40;&41;


code: void PushInputPackage &40; int32 Frame, FDeformableDataMap && InPackage &41;


code: void RemoveProxy &40; FThreadingProxy &42; InObject &41;


code: void SetEnableSolver &40; bool InbEnableSolver &41;


code: FGameThreadAccess &40; FDeformableSolver &42; InSolver, const FGameThreadAccessor & &41;


className: FGameThreadAccess

description: Game Thread Access API

code: class FGameThreadAccess


code: void AdvanceDt &40; FSolverReal DeltaTime &41;


code: FPBDEvolution &42; GetEvolution&40;&41;


code: const FPBDEvolution &42; GetEvolution&40;&41; const


code: TArrayCollectionArray< const UObject &42; > & GetObjectsMap&40;&41;


code: const TArrayCollectionArray< const UObject &42; > & GetObjectsMap&40;&41; const


code: const FDeformableSolverProperties & GetProperties&40;&41; const


code: void InitializeCollisionBodies &40; FCollisionManagerProxy & &41;


description: Iteration Advance

code: void InitializeSimulationObject &40; FThreadingProxy & &41;


description: Iteration Advance


code: TUniquePtr< FDeformablePackage > PullInputPackage&40;&41;


code: void PushOutputPackage &40; int32 Frame, FDeformableDataMap && Package &41;


code: void RemoveSimulationObjects&40;&41;


code: void Reset &40; const FDeformableSolverProperties & &41;


code: void Simulate &40; FSolverReal DeltaTime &41;


code: void Update &40; FSolverReal DeltaTime &41;


code: void UpdateOutputState &40; FThreadingProxy & &41;


description: Simulation Advance

code: void UpdateProxyInputPackages&40;&41;


code: FPhysicsThreadAccess &40; FDeformableSolver &42; InSolver, const FPhysicsThreadAccessor & &41;


className: FPhysicsThreadAccess

description: Physics Thread Access API

code: class FPhysicsThreadAccess


description: Simulation Advance

code: int32 GetFrame() const


code: const [FDeformableSolverProperties](API\Runtime\Chaos\Chaos\Deformable\FDeformableSolverProperties) & GetProperties() const


description: Game Thread API

code: bool HasObject ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * InObject ) const


className: InitializationMutex

description: Connections outside the solver.


code: void InitializeCollisionBodies ( [FCollisionManagerProxy](API\Runtime\Chaos\Chaos\Deformable\FCollisionManagerProxy) & )


code: void InitializeDeformableParticles ( [FFleshThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FFleshThreadingProxy) & )


code: void InitializeGaussSeidelConstraints ( [FFleshThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FFleshThreadingProxy) & Proxy )


code: void InitializeGidBasedConstraints ( [FFleshThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FFleshThreadingProxy) & )


code: void InitializeKinematicConstraint()


code: void InitializeKinematicParticles ( [FFleshThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FFleshThreadingProxy) & )


code: void InitializeSelfCollisionVariables()


code: void InitializeSimulationObject ( [FThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy) & )


code: void InitializeTetrahedralConstraint ( [FFleshThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FFleshThreadingProxy) & )


description: Iteration Advance

code: void InitializeSimulationSpace()


code: void InitializeWeakConstraint ( [FFleshThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FFleshThreadingProxy) & )


code: void PostProcessTransientConstraints()


code: void PushOutputPackage ( int32 Frame, [FDeformableDataMap](API\Runtime\Chaos\Chaos\Deformable\FDeformableDataMap) && Package )


code: void PushInputPackage ( int32 Frame, [FDeformableDataMap](API\Runtime\Chaos\Chaos\Deformable\FDeformableDataMap) && InPackage )


className: RemovalMutex

code: static FCriticalSection RemovalMutex;


code: void RemoveProxy ( [FThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy) * InObject )


code: void Reset ( const [FDeformableSolverProperties](API\Runtime\Chaos\Chaos\Deformable\FDeformableSolverProperties) & )


code: void SetEnableSolver ( bool InbEnableSolver )


code: void Simulate ( [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) DeltaTime )


className: TransientConstraintBufferMap

code: typedef [TMap](API\Runtime\Core\Containers\TMap)< int32, [TTuple](API\Runtime\Core\Misc\TTuple)< float, float, FVector3f > > TransientConstraintBufferMap


code: void UpdateCollisionBodies ( [FCollisionManagerProxy](API\Runtime\Chaos\Chaos\Deformable\FCollisionManagerProxy) &, [FThreadingProxy::FKey](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy\FKey), [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) DeltaTime )


code: void UpdateOutputState ( [FThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy) & )


code: void UpdateSimulationObjects ( [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) DeltaTime )


code: void Update ( [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) DeltaTime )


code: void WriteFrame ( [FThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy) & InProxy, const [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) DeltaTime )


code: void WriteTrisGEO ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & Particles, const [TArray](API\Runtime\Core\Containers\TArray)< TVec3< int32 >> & Mesh )


code: FDeformableSolver ( [FDeformableSolverProperties](API\Runtime\Chaos\Chaos\Deformable\FDeformableSolverProperties) InProp )


className: FDeformableSolver

code: class FDeformableSolver : public [Chaos::FPhysicsSolverEvents](API\Runtime\Chaos\Chaos\Framework\FPhysicsSolverEvents)


code: FDeformableSolverProperties ( int32 InNumSolverSubSteps, int32 InNumSolverIterations, bool InFixTimeStep, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InTimeStepSize, bool InCacheToFile, bool InbEnableKinematics, bool InbUseFloor, bool InbDoSelfCollision, bool InbUseGridBasedConstraints, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InGridDx, bool InbDoQuasistatics, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InEMesh, bool InbDoBlended, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InBlendedZeta, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InDamping, bool InbEnableGravity, bool InbEnableCorotatedConstraints, bool InbEnablePositionTargets, bool InbUseGaussSeidelConstraints, bool InbUseSOR, [FSolverReal](API\Runtime\Chaos\Chaos\FSolverReal) InOmegaSOR, bool InbUseGSNeohookean )


className: FDeformableSolverProperties

code: struct FDeformableSolverProperties

BlendedZeta

type: FSolverReal


className: FDeformableXPBDCorotatedParams

code: struct FDeformableXPBDCorotatedParams


className: Source

code: typedef FFleshThreadingProxy Source


className: Super

code: typedef FThreadingProxy::FBuffer Super


code: FFleshInputBuffer &40; const FManagedArrayCollection InSimulationCollection, const FTransform & InWorldToComponentXf, const FTransform & InComponentToBoneXf, const int32 InSimSpaceBoneIndex, const bool InbEnableGravity, const float InStiffnessMultiplier, const float InDampingMultiplier, const float InMassMultiplier, const float InInCompressibilityMultiplier, const float InInflationMultiplier, const UObject &42; InOwner &41;


code: FFleshInputBuffer &40; const FManagedArrayCollection InSimulationCollection, const FTransform & InWorldToComponentXf, const FTransform & InComponentToBoneXf, const int32 InSimSpaceBoneIndex, const TArray< FTransform > & InTransforms, const TArray< FTransform > & InRestTransforms, const bool InbEnableGravity, const float InStiffnessMultiplier, const float InDampingMultiplier, const float InMassMultiplier, const float InInCompressibilityMultiplier, const float InInflationMultiplier, const UObject &42; InOwner &41;


code: virtual &126;FFleshInputBuffer&40;&41;


className: FFleshInputBuffer

code: class FFleshInputBuffer : public [Chaos::Softs::FThreadingProxy::FBuffer](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy\FBuffer)

DampingMultiplier

type: float

RestTransforms

type: TArray< FTransf...

SimulationCollection

type: constFManagedA...


code: FFleshOutputBuffer &40; const Source & Ref &41;


code: virtual &126;FFleshOutputBuffer&40;&41;


className: FFleshOutputBuffer

code: class FFleshOutputBuffer : public [Chaos::Softs::FThreadingProxy::FBuffer](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy\FBuffer)

Dynamic

type: FManagedArrayCo...


code: const FTransform & GetCurrentPointsTransform() const


code: const [FManagedArrayCollection](API\Runtime\Chaos\GeometryCollection\FManagedArrayCollection) & GetDynamicCollection() const


description: Return the transform required to get from whatever our simulation space is, to component space.

code: FTransform GetFinalTransform() const


description: Return the transform required to get points from component space to whatever the specified simulation space is.

code: const FTransform & GetInitialPointsTransform() const


code: const [FManagedArrayCollection](API\Runtime\Chaos\GeometryCollection\FManagedArrayCollection) & GetRestCollection() const


code: const FTransform & GetPreviousPointsTransform() const


code: const FIntVector2 & GetSolverParticleRange() const


code: [Chaos::TVector](API\Runtime\Chaos\Chaos\TVector)< [Chaos::FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle), 3 > RotateWorldSpaceVector ( const [Chaos::TVector](API\Runtime\Chaos\Chaos\TVector)< [Chaos::FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle), 3 > & Dir ) const


code: void SetSolverParticleRange ( int32 InStart, int32 InRange )


description: Update the component and bone transforms with current data from the scene.

code: void UpdateSimSpace ( const FTransform & InWorldToComponentXf, const FTransform & InComponentToBoneXf )


code: FFleshThreadingProxy ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * InOwner, const FTransform & InWorldToComponentXf, const FTransform & InComponentToBoneXf, const ChaosDeformableSimSpace InSimSpace, const [FManagedArrayCollection](API\Runtime\Chaos\GeometryCollection\FManagedArrayCollection) & InRest, const [FManagedArrayCollection](API\Runtime\Chaos\GeometryCollection\FManagedArrayCollection) & InDynamic )


className: FFleshThreadingProxy

code: class FFleshThreadingProxy : public [Chaos::Softs::FThreadingProxy](API\Runtime\Chaos\Chaos\Deformable\FThreadingProxy)


className: FGameThreadAccessor

description: Accessor for the Game Thread

code: class FGameThreadAccessor


description: Friend classUDeformableSolverComponent; friend classFFleshCacheAdapter;

code: FGameThreadAccessor()


code: void Apply ( ParticleType & Particles, const T Dt ) const


code: void ApplySOR ( ParticleType & Particles, const T Dt ) const


code: [Chaos::TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > ComputePerParticleResidual ( const int32 p, const int32 IncidentIndex, const ParticleType & Particles, const T Dt, const bool AddMass ) const


className: Base

code: typedef [FXPBDCorotatedConstraints](API\Runtime\Chaos\Chaos\FXPBDCorotatedConstraints)< T, ParticleType > Base


code: [Chaos::PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > ComputePerParticleCorotatedHessianSimple ( const int32 p, const int32 IncidentIndex, const ParticleType & Particles, const T Dt, const bool AddMass ) const


code: [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 > > GetIncidentElements() const


code: [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 > > GetIncidentElementsLocal() const


code: [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 > > GetMeshConstraints() const


code: void Init ( const T Dt, const ParticleType & Particles ) const


code: void InitColor ( const ParticleType & Particles )


code: void SetParticlesPerColor ( [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> && InParticlesPerColor )


code: FGaussSeidelCorotatedConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const [TArray](API\Runtime\Core\Containers\TArray)< T > & EMeshArray, const [TArray](API\Runtime\Core\Containers\TArray)< T > & NuMeshArray, [TArray](API\Runtime\Core\Containers\TArray)< T > && AlphaJMeshArray, [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> && IncidentElementsIn, [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> && IncidentElementsLocalIn, const int32 ParticleStartIndexIn, const int32 ParticleEndIndexIn, const bool bDoQuasistaticsIn, const bool bDoSORIn, const T InOmegaSOR, const [FDeformableXPBDCorotatedParams](API\Runtime\Chaos\Chaos\Deformable\FDeformableXPBDCorotatedParams) & InParams, const T & NuMesh, const bool bRecordMetricIn )


className: FGaussSeidelCorotatedConstraints

code: template<typename T, typename ParticleType> class FGaussSeidelCorotatedConstraints : public [Chaos::Softs::FXPBDCorotatedConstraints< T, ParticleType >](API\Runtime\Chaos\Chaos\FXPBDCorotatedConstraints)

AddAdditionalHessian

type: TFunction< void...

IncidentElements

type: TArray<TArray<...

type: TArray< int32 >

ParticleColors

type: TUniquePtr<TAr...


className: GSBase

code: typedef [FGaussSeidelCorotatedConstraints](API\Runtime\Chaos\Chaos\Deformable\FGaussSeidelCorotatedConstraints)< T, ParticleType > GSBase


code: FGaussSeidelNeohookeanConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const [TArray](API\Runtime\Core\Containers\TArray)< T > & EMeshArray, const [TArray](API\Runtime\Core\Containers\TArray)< T > & NuMeshArray, [TArray](API\Runtime\Core\Containers\TArray)< T > && AlphaJMeshArray, [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> && IncidentElementsIn, [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> && IncidentElementsLocalIn, const int32 ParticleStartIndexIn, const int32 ParticleEndIndexIn, const bool bDoQuasistaticsIn, const bool bDoSORIn, const T InOmegaSOR, const [FDeformableXPBDCorotatedParams](API\Runtime\Chaos\Chaos\Deformable\FDeformableXPBDCorotatedParams) & InParams, const T & NuMesh, const bool bRecordMetricIn )


className: FGaussSeidelNeohookeanConstraints

code: template<typename T, typename ParticleType> class FGaussSeidelNeohookeanConstraints : public [Chaos::Softs::FGaussSeidelCorotatedConstraints< T, ParticleType >](API\Runtime\Chaos\Chaos\Deformable\FGaussSeidelCorotatedConstraints)


code: void AddExtraConstraints ( const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & InIndices, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< T >> & InWeights, const [TArray](API\Runtime\Core\Containers\TArray)< T > & InStiffness, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & InSecondIndices, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< T >> & InSecondWeights )


code: void AddWCHessian ( const int32 p, const T Dt, [Chaos::PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > & ParticleHessian )


code: void AddWCResidual ( const ParticleType & InParticles, const int32 p, const T Dt, TVec3< T > & res )


code: void ComputeCollisionWCData ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & MeshConstraints, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & MeshIncidentElements, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & MeshIncidentElementsLocal, [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & ParticlesPerColor )


code: void ComputeInitialWCData ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & MeshConstraints, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & MeshIncidentElements, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & MeshIncidentElementsLocal, [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & ParticlesPerColor )


code: void Init ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & InParticles, const T Dt ) const


code: void VisualizeAllBindings ( const [FSolverParticles](API\Runtime\Chaos\Chaos\FSolverParticles) & InParticles, const T Dt ) const


description: TODO(Yizhou): Add unittest for Gauss Seidel Weak Constraints.

code: FGaussSeidelWeakConstraints ( const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & InIndices, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< T >> & InWeights, const [TArray](API\Runtime\Core\Containers\TArray)< T > & InStiffness, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & InSecondIndices, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< T >> & InSecondWeights, const [FDeformableXPBDWeakConstraintParams](API\Runtime\Chaos\Chaos\FDeformableXPBDWeakConstraintPar-) & InParams )


code: virtual ~FGaussSeidelWeakConstraints()


className: FGaussSeidelWeakConstraints

code: template<typename T, typename ParticleType> struct FGaussSeidelWeakConstraints

Constraints

type: TArray<TVector...

DebugDrawParams

type: FDeformableXPBD...

IsAnisotropic

type: TArray< bool >

Stiffness

type: TArray< T >


code: FPhysicsThreadAccessor()


className: FPhysicsThreadAccessor

description: Accessor for the Physics Thread

code: class FPhysicsThreadAccessor


code: template<class T> T &42; As&40;&41;


code: template<class T> T &42; As&40;&41; const


code: FBuffer &40; const FThreadingProxy & Ref &41;


code: FBuffer &40; const UObject &42; InOwner, FName InTypeName &41;


className: FKey

code: typedef const [UObject](API\Runtime\CoreUObject\UObject\UObject) * FKey


code: const [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetOwner() const


code: FThreadingProxy ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) * InOwner, [FName](API\Runtime\Core\UObject\FName) InTypeName )


className: FThreadingProxy

code: class FThreadingProxy


code: DirtyGridHashEntry ( const [DirtyGridHashEntry](API\Runtime\Chaos\Chaos\DirtyGridHashEntry) & Other )


className: DirtyGridHashEntry

code: struct DirtyGridHashEntry


className: EImplicitObjectType

code: typedef uint8 EImplicitObjectType


code: template<typename Func> void AddInternalElasticForce ( const ParticleType & InParticles, Func P, [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 >> & Force, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 2 >>> * IncidentElements, T Scale, const [TArray](API\Runtime\Core\Containers\TArray)< T > * NodalMass )


code: template<typename Func> void AddNegativeInternalElasticForceDifferential ( const ParticleType & InParticles, Func dP, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 >> & DeltaParticles, [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 >> & ndf, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 2 >>> * IncidentElements )


code: void ComputeNodalMass ( const T Density )


code: [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > Ds ( const int e, const ParticleType & InParticles ) const


code: [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > Ds ( const int e, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 >> & InParticles ) const


code: [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > DsInit ( const int e, const ParticleType & InParticles ) const


code: [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > ElementDmInv ( const int e ) const


code: [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > F ( const int e, const ParticleType & InParticles ) const


code: [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 3, 3 > F ( const int e, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 >> & InParticles ) const


code: ElasticFEM ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 2 >>> & IncidentElementsIn )


className: ElasticFEM

code: template<typename T, typename ParticleType> class ElasticFEM

Mesh

type: constTArray<T...


description: Add all the required bodies to the body container (required for the constraints added with AddConstraints)

code: void AddBodies ( [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


description: RBAN API. Add all (active) constraints to the solver.

code: void AddConstraints()


description: Island API. Add a set of constraints to the solver. This can be called multiple times: once for each island in an IslandGroup, but there will never be more constraints added than specified inReset(). NOTE: this should not do any actual data gathering - it should just add to the list of constraints in this group. All data gathering is handled in GatherInput.

code: void AddConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [Private::FPBDIslandConstraint](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraint) * > & Constraints )


description: Apply the position solve to all constraints in the container

code: void ApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


description: Apply the projection solve to all constraints in the container

code: void ApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


description: Apply the velocity solve to all constraints in the container

code: void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginIndex, const int32 EndIndex )


description: Get the solver priority

code: int32 GetPriority() const


code: virtual void PreApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void PreApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Set the maximum number of constraints the solver will have to handle. This will be called only once per tick, so containers resized here will not have to resize again this tick so that pointers to elements in the container will remain valid for the tick (but not beyond).

code: void Reset ( const int32 MaxConstraints )


code: virtual void PreApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginIndex, const int32 EndIndex )


description: FPBDConstraintGroupSolver

code: void SetPriority ( const int32 InPriority )


code: FConstraintContainerSolver ( const int32 InPriority )


code: virtual ~FConstraintContainerSolver()


className: FConstraintContainerSolver

description: NOTE: there are two main use-case forFConstraintContainerSolverobjects: the main physics scene and RBAN. The main scene uses the IslandManager to break the scene up into groups of constraints that can be solved in parallel (Islands). Those islands are then put into IslandGroups, and each IslandGroup is solved in a task, therefore we will have oneFConstraintContainerSolverper type of constraint per IslandGroup. RBAN does not attempt to partition its scene into islands and just solves all constraints on its main thread, so it only has oneFConstraintContainerSolver(per constraint type).

code: class FConstraintContainerSolver


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) ActorP() const


code: const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) ActorQ() const


code: void ApplyAngularVelocityDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DW )


code: void ApplyPositionCorrectionDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DP )


code: void ApplyLinearVelocityDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DV )


code: void ApplyPositionDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DP )


code: void ApplyRotationCorrectionDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DR )


code: void ApplyRotationDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DR )


code: void ApplyVelocityDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DV, const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DW )


code: void ApplyTransformDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DP, const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DR )


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) CorrectedActorP() const


code: const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) CorrectedActorQ() const


code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & CP() const


code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & CQ() const


code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DP() const


code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DQ() const


code: void EnforceShortestRotationTo ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & InQ )


description: Initialize all properties to safe values.

code: void Init()


description: The net scaled inverse inertia.


description: The net scaled local space inverse inertia.


description: A scale applied to inverse inertia.


description: The net scaled inverse mass.


description: A scale applied to inverse mass.


description: Whether the body is dynamic (i.e., has a finite mass) after scaling is applied.

code: bool IsDynamic() const


description: True if we have been set up to decorate a SolverBody.

code: bool IsValid() const


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & P() const


code: const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & Q() const


code: const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R() const


description: Invalidate the solver body reference.

code: void Reset()


description: From here all methods just forward to theFSolverBody

code: void SetImplicitVelocity ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void SetInvIScale ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) InValue )


code: void SetInvMScale ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) InValue )


description: Does not initialize any other properties

code: void SetSolverBody ( [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & InSolverBody )


description: Shock propagation mass and inertia scaling (0 for infinite mass, 1 for no effect)


code: void SetShockPropagationScale ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) InValue )


description: The decorated SolverBody.


code: const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & SolverBody() const


code: void UpdateRotationDependentState()


code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & V() const


code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & W() const


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & X() const


code: FConstraintSolverBody ( [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & InBody )


className: FConstraintSolverBody

description: This functionality cannot be inFSolverBodybecause two constraints referencing the same body may be applying different mass modifiers (e.g., Joints support "bParentDominates" which is a per-constraint property, not a per-body property.

code: class FConstraintSolverBody


className: FGeometryParticleHandle

code: typedef [TGeometryParticleHandle](API\Runtime\Chaos\Chaos\TGeometryParticleHandle)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > FGeometryParticleHandle


code: void SetConstraintIndex ( const int32 InConstraintIndex )


code: static const [FConstraintHandleTypeID](API\Runtime\Chaos\Chaos\FConstraintHandleTypeID) & StaticType()


code: FIndexedConstraintHandle ( [FPBDConstraintContainer](API\Runtime\Chaos\Chaos\FPBDConstraintContainer) * InContainer, int32 InConstraintIndex )


code: virtual ~FIndexedConstraintHandle()


className: FIndexedConstraintHandle

description: Base class for handles to constraints in an index-based container (e.g., FJointConstraints)

code: class FIndexedConstraintHandle : public [Chaos::FConstraintHandle](API\Runtime\Chaos\Chaos\FConstraintHandle)


code: int32 GetNumPositionIterations() const


code: int32 GetNumVelocityIterations() const


className: InvalidIterations

code: static const int32 InvalidIterations = INDEX_NONE;


className: MaxPositionIterations

code: static const int32 MaxPositionIterations = std::numeric_limits<FIndexType>::max();


className: MaxProjectionIterations

code: static const int32 MaxProjectionIterations = std::numeric_limits<FIndexType>::max();


className: MaxVelocityIterations

code: static const int32 MaxVelocityIterations = std::numeric_limits<FIndexType>::max();


code: static [FIterationSettings](API\Runtime\Chaos\Chaos\Evolution\FIterationSettings) Merge ( const [FIterationSettings](API\Runtime\Chaos\Chaos\Evolution\FIterationSettings) & L, const [FIterationSettings](API\Runtime\Chaos\Chaos\Evolution\FIterationSettings) & R )


code: void SetNumPositionIterations ( const int32 InNum )


code: void SetNumProjectionIterations ( const int32 InNum )


code: void SetNumVelocityIterations ( const int32 InNum )


code: FIterationSettings ( const int32 InNumPositionIterations, const int32 InNumVelocityIterations, const int32 InNumProjectionInterations )


className: FIterationSettings

description: Iteration counts for use by bodies and constraints. A simulation island will use the maximum number of iterations of any body or constraint in the island.

code: class FIterationSettings


description: Set up the constraints solvers and body containers with pointers to their constraint and particles, but do not collect any data.

code: void AddConstraintsAndBodies()


description: Allow a derived class to add constraints solvers.

code: virtual void AddConstraintsImpl()


description: Apply positional constraints, and set the body velocities

code: void ApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Apply projection to attempt to fix up any errors left over from the Position and Velocity saolver phases

code: void ApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Loop over the range of constraints and apply the lambda. The range is treats constraints of all types as a contiguous list and the function loops over constraint types and maps the range into the solver ranges for each type.

code: template<typename LambdaType> void ApplyToConstraintRange ( const int32 BeginConstraintIndex, const int32 EndConstraintIndex, const LambdaType & Lambda )


description: Apply any velocity constraints, and update the body velocities

code: void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Collect all the data for all solver bodies from their respective particles.

code: void GatherBodies ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Collect all the data for the specified range of solver bodies from their respective particles. Will be called from multiple threads with different non-overlapping indices.

code: void GatherBodies ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginBodyIndex, const int32 EndBodyIndex )


description: Allow a derived class to populate some of the SolverBody data (Level and Color)

code: virtual void GatherBodiesImpl ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginBodyIndex, const int32 EndBodyIndex )


description: Collect all the data for the specified range of constraint solvers from their respective constraints. Will be called from multiple threads with different non-overlapping indices.

code: void GatherConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginConstraintIndex, const int32 EndConstraintIndex )


description: Get the iterations settings for this group of islands


description: FPBDISlandGroup) when there are no constraints in some islands.

code: int32 GetNumSolverBodies() const


description: Get the number of constraint solver we have, afterAddConstraintsAndBodies()has been called.

code: int32 GetNumSolverConstraints() const


code: [FPBDConstraintGroupSolver](API\Runtime\Chaos\Chaos\Evolution\FPBDConstraintGroupSolver) & operator= ( const [FPBDConstraintGroupSolver](API\Runtime\Chaos\Chaos\Evolution\FPBDConstraintGroupSolver) & )


code: [FPBDConstraintGroupSolver](API\Runtime\Chaos\Chaos\Evolution\FPBDConstraintGroupSolver) & operator= ( [FPBDConstraintGroupSolver](API\Runtime\Chaos\Chaos\Evolution\FPBDConstraintGroupSolver) && )


description: For additional processing after gathering all the data. Calls PreApplyConstraints on each container solver.

code: void PreApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void PreApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Collect all the data for all constraint solvers from their respective constraints.

code: void GatherConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void PreApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Reset all state - called once per tick

code: void Reset()


description: Allow a derived class to perform per-tick reset.

code: virtual void ResetImpl()


description: Push results from all solver bodies back to their respective particles.

code: void ScatterBodies ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Push results from the specified range of solver bodies back to their respective particles. Will be called from multiple threads with different non-overlapping indices.

code: void ScatterBodies ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginBodyIndex, const int32 EndBodyIndex )


description: Push results from all constraint solvers back to their respective constraints.

code: void ScatterConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Push results from the specified range of constraint solvers back to their respective constraints.Will be called from multiple threads with different non-overlapping indices. The range covers all constraint types.

code: void ScatterConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginConstraintIndex, const int32 EndConstraintIndex )


description: Set the solver priority of the specified constraint type

code: void SetConstraintSolverPriority ( const int32 ContainerId, const int32 Priority )


description: Allow a derived class to add data based on the number of constraint types we need to support.

code: virtual void SetConstraintSolverImpl ( const int32 ContainerId )


description: Attach a constraint solver to the specified ContainerId. This must be for the same constraint type as the container with that Id.

code: void SetConstraintSolver ( const int32 ContainerId, [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FConstraintContainerSolver](API\Runtime\Chaos\Chaos\Evolution\FConstraintContainerSolver) > && Solver )


description: Set the iterations settings for this group of islands

code: virtual void SetIterationSettings ( const [FIterationSettings](API\Runtime\Chaos\Chaos\Evolution\FIterationSettings) & InIterations )


description: Sort the solvers based on Level and other criteria for more stable solving.

code: void SortSolverContainers()


code: FPBDConstraintGroupSolver ( [FPBDConstraintGroupSolver](API\Runtime\Chaos\Chaos\Evolution\FPBDConstraintGroupSolver) && )


code: FPBDConstraintGroupSolver ( const [FPBDConstraintGroupSolver](API\Runtime\Chaos\Chaos\Evolution\FPBDConstraintGroupSolver) & )


code: virtual ~FPBDConstraintGroupSolver()


className: FPBDConstraintGroupSolver

description: All the data required to solver a set of constraints. All constraints in the groups are solved in sequence in a single thread. We can create one of these for each Island (or group of Islands, or subset of a color of constraints) for parallelism.

code: class FPBDConstraintGroupSolver

ConstraintContainerSolvers

type: TArray<TUnique...

description: A solver for each constraint type in the group.

Iterations

type: FIterationSetti...

PrioritizedConstraintContainerSolvers

type: TArray<FConstr...

description: Sorted by priority for use in solve methods.

SolverBodyContainer

type: FSolverBodyCont...

description: All the bodies used by all the constraints solved by this group.


code: int32 GetConstraintIndex ( const [FIndexedConstraintHandle](API\Runtime\Chaos\Chaos\Evolution\FIndexedConstraintHandle) * ConstraintHandle ) const


code: virtual void SetConstraintEnabled ( int32 ConstraintIndex, bool bEnabled )


code: virtual bool IsConstraintEnabled ( int32 ConstraintIndex ) const


code: void SetConstraintIndex ( [FIndexedConstraintHandle](API\Runtime\Chaos\Chaos\Evolution\FIndexedConstraintHandle) * ConstraintHandle, int32 ConstraintIndex ) const


code: FPBDIndexedConstraintContainer ( [FConstraintHandleTypeID](API\Runtime\Chaos\Chaos\FConstraintHandleTypeID) InType )


className: FPBDIndexedConstraintContainer

description: Utility base class for constraint containers usingindexed-based constraint handles (e.g., FJointConstraints)

code: class FPBDIndexedConstraintContainer : public [Chaos::FPBDConstraintContainer](API\Runtime\Chaos\Chaos\FPBDConstraintContainer)


code: void AddConstraintContainer ( [FPBDConstraintContainer](API\Runtime\Chaos\Chaos\FPBDConstraintContainer) & InContainer, const int32 Priority )


code: void Advance ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) StepDt, const int32 NumSteps, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) RewindDt )


code: void AdvanceOneTimeStep ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) StepFraction )


className: FEvolutionCallback

code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void()> FEvolutionCallback


code: const [FSimulationSpaceSettings](API\Runtime\Chaos\Chaos\Evolution\FSimulationSpaceSettings) & GetSimulationSpaceSettings() const


description: Deprecated* BoundsExtension has been removed

code: void SetBoudsExtension ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Unused )


code: void SetConstraintContainerPriority ( const int32 ContainerId, const int32 Priority )


code: void SetGravity ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & G )


code: void SetNumPositionIterations ( const int32 NumIts )


code: void SetNumVelocityIterations ( const int32 NumIts )


code: void SetNumProjectionIterations ( const int32 NumIts )


code: void SetSimulationSpace ( const [FSimulationSpace](API\Runtime\Chaos\Chaos\Evolution\FSimulationSpace) & InSimulationSpace )


code: void SetSimulationSpaceSettings ( const [FSimulationSpaceSettings](API\Runtime\Chaos\Chaos\Evolution\FSimulationSpaceSettings) & InSimulationSpaceSettings )


code: FPBDMinEvolution ( [FRigidParticleSOAs](API\Runtime\Chaos\Chaos\Evolution\FPBDMinEvolution\FRigidParticleSOAs) & InParticles, [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) > & InPrevX, [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) > & InPrevR, [FCollisionDetector](API\Runtime\Chaos\Chaos\Evolution\FPBDMinEvolution\FCollisionDetector) & InCollisionDetector )


description: Deprecated* InBoundsExtension parameter has been removed

code: FPBDMinEvolution ( [FRigidParticleSOAs](API\Runtime\Chaos\Chaos\Evolution\FPBDMinEvolution\FRigidParticleSOAs) & InParticles, [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) > & InPrevX, [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) > & InPrevR, [FCollisionDetector](API\Runtime\Chaos\Chaos\Evolution\FPBDMinEvolution\FCollisionDetector) & InCollisionDetector, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InBoundsExtension )


className: FPBDMinEvolution

description: It is single-threaded and does not use a constraint graph or partition the particles into islands.

code: class FPBDMinEvolution


description: The Scene Group Solver adds all constraints from all containers.

code: virtual void AddConstraintsImpl()


className: FPBDSceneConstraintGroupSolver

description: There will only be one (or zero)FPBDSceneConstraintGroupSolverper simulation world.

code: class FPBDSceneConstraintGroupSolver : public [Chaos::Private::FPBDConstraintGroupSolver](API\Runtime\Chaos\Chaos\Evolution\FPBDConstraintGroupSolver)


code: FPBDSceneConstraintGroupSolver ( const [FIterationSettings](API\Runtime\Chaos\Chaos\Evolution\FIterationSettings) & InIterations )


className: FSimulationSpace

description: Information about the space in which a simulation is being run. This, when combined with aFSimulationSpaceSettingsobject, can be used to pass a tunable fraction of the world-space movement on to the bodies.

code: class FSimulationSpace

Transform

type: FRigidTransform...


code: [FSimulationSpaceSettings](API\Runtime\Chaos\Chaos\Evolution\FSimulationSpaceSettings) & operator= ( const [FSimulationSpaceSettings](API\Runtime\Chaos\Chaos\Evolution\FSimulationSpaceSettings) & )


code: PRAGMA_DISABLE_DEPRECATION_WARNINGS FSimulationSpaceSettings ( const [FSimulationSpaceSettings](API\Runtime\Chaos\Chaos\Evolution\FSimulationSpaceSettings) & )


description: Get the world-space Actor position.


description: Get the world-space Actor rotation.


className: FSimulationSpaceSettings

code: class FSimulationSpaceSettings

Alpha

type: FReal

description: Global multipler on the effects of simulation space movement.

AngularAccelerationAlpha

description: How much of the simulation frame's angular acceleration to pass onto the particles.

AngularVelocityAlpha

description: How much of the simulation frame's angular velocity to pass onto the particles (angular ether drag)

CentrifugalAlpha

description: How much of the centrifugal force to apply to the particles.

CoriolisAlpha

description: How much of the coriolis force to apply to the particles.

EulerAlpha

description: How much of the euler force to apply to the particles.

ExternalLinearEtherDrag

description: An additional linear drag on top of the EtherDrag that can be set on the physics asset. Vector in simulation local space.

LinearAccelerationAlpha

description: How much of the simulation frame's linear acceleration to pass onto the particles.

LinearVelocityAlpha

description: How much of the simulation frame's linear velocity to pass onto the particles (linear ether drag)


description: Apply an world-space angular velocity delta to the solver body.

code: void ApplyAngularVelocityDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DW )


description: Apply the accumulated position and rotation corrections to the predicted P and Q This is only used by unit tests that reuse solver bodies between ticks.

code: void ApplyCorrections()


description: Apply a world-space linear velocity delta to the solver body.

code: void ApplyLinearVelocityDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DV )


description: Apply a world-space position delta to the solver body center of mass.

code: void ApplyPositionDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DP )


description: Apply a world-space position correction delta to the solver body center of mass This will translate the body without introducing linear velocity.

code: void ApplyPositionCorrectionDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & CP )


description: Apply a world-space position and rotation delta to the body center of mass, and update inverse mass.

code: void ApplyTransformDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DP, const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DR )


description: Apply a world-space rotation correction delta to the solver body This will rotate the body without introducing angular velocity.

code: void ApplyRotationCorrectionDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & CR )


description: Apply a world-space rotation delta to the solver body and update the inverse mass.

code: void ApplyRotationDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DR )


description: Apply a world-space velocity delta to the solver body.

code: void ApplyVelocityDelta ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DV, const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DW )


code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & CoM() const


description: This is recalculated from the current CoM transform including the accumulated position and rotation corrections.


description: The current CoM transform.


description: This only includes correction terms that do not introduce linear velocity. The full solver displacement is given by DP

code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & CP() const


description: This only includes correction terms that do not introduce angular velocity. The full solver angular displacement is given by DQ

code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & CQ() const


description: Net world-space position displacement applied by the constraints.

code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DP() const


description: Net world-space rotation displacement applied by the constraints (axis-angle vector equivalent to angular velocity but for position)

code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & DQ() const


description: Update the rotation to be in the same hemisphere as the provided quaternion. This is used by joints with angular constraint/drives.

code: void EnforceShortestRotationTo ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & InQ )


description: Get the world-space inverse inertia.

code: const [FSolverMatrix33](API\Runtime\Chaos\Chaos\Evolution\FSolverMatrix33) & InvI() const


description: Get the local-space inverse inertia (diagonal elements)

code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & InvILocal() const


description: Inline FRealInvM() const{ return State.InvM; }


description: Contact graph level. This is used in shock propagation to determine which of two bodies should have its inverse mass scaled.

code: int32 Level() const


description: This is based on the current inverse mass, so a "dynamic" particle with 0 inverse mass will return true here.

code: bool IsDynamic() const


description: A factory method to create a safely initialized Solverbody. The defaultconstructor assumes you are going to set all properties manually.


description: Create an empty solver body. All properties are uninitialized.


description: CorrectedP()

code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & P() const


code: void PrefetchPositionSolverData() const


code: void PrefetchVelocitySolverData() const


description: CorrectedQ()

code: const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & Q() const


code: *note Calculated on demand from Q() const


code: *note Calculated on demand from P() const


description: Pre-integration world-space center of mass rotation.

code: const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & R() const


code: const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & RoM() const


code: void SetCoM ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InCoM )


code: void SetDP ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & InDP )


code: void SetDQ ( const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & InDQ )


description: Calculate and set the velocity and angular velocity from the net transform delta.

code: void SetImplicitVelocity ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Reset the solver accumulators

code: void Reset()


description: Set the world-space inverse inertia.

code: void SetInvI ( const [FMatrix33](API\Runtime\ChaosCore\Chaos\FMatrix33) & InInvI )


description: Set the local-space inverse inertia (diagonal elements)

code: void SetInvILocal ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InInvILocal )


description: Set the inverse mass.

code: void SetInvM ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) InInvM )


code: void SetP ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InP )


code: void SetQ ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & InQ )


code: void SetR ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & InR )


code: void SetRoM ( const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & InRoM )


code: void SetV ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InV )


code: void SetW ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InW )


code: void SetX ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InX )


description: Update cached state that depends on rotation (i.e., world space inertia)

code: void UpdateRotationDependentState()


description: World-space center of mass velocity.

code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & V() const


description: World-space center of mass angular velocity.

code: const [FSolverVec3](API\Runtime\Chaos\Chaos\Evolution\FSolverVec3) & W() const


description: Pre-integration world-space center of mass position.

code: const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & X() const


code: static constexpr [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) ZeroMassThreshold()


code: FSolverBody()


className: FSolverBody

description: theX(),P(),R(),Q()accessors onFSolverBodyreturn the Center of Mass positions and rotations, in contrast to the Particle methods which gives Actor positions and rotations. This is because the Constraint Solvers all calculate impulses and position corrections relative to the center of mass.

code: class FSolverBody


description: Apply accumulated transform deltas to the body transforms.

code: void ApplyCorrections()


className: BodyArrayChunkSize

code: static const int32 BodyArrayChunkSize = NumBodiesPerChunk * sizeof(FSolverBody);


description: Used to AB test solvers - not intended for general use (very expensive!)

code: void CopyTo ( [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & Dest )


description: Add a solver body to represent the solver state of the particle This should ideally be called in the order in which the bodies will be accessed (or as close as we can get, given most constraints access 2 bodies so there is no perfect order) NOTE: This does not populate the solver body with any data from the particle - we must also call GatherInput for that to happen (GatherInput is highly parallizable but FindOrAdd is not)

code: [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) * FindOrAdd ( [FGenericParticleHandle](API\Runtime\Chaos\Chaos\FGenericParticleHandle) InParticle )


className: FSolverBodyArray

code: typedef [TChunkedArray](API\Runtime\Core\Containers\TChunkedArray)< [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody), BodyArrayChunkSize > FSolverBodyArray


description: Collect all the data we need from the particles represented by our SolverBodies.

code: void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginIndex, const int32 EndIndex )


description: Get the particle associated with the solver body atIndex.

code: [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * GetParticle ( const int32 Index ) const


description: Get the solver body atIndex.

code: const [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & GetSolverBody ( const int32 Index ) const


description: Get the solver body atIndex.

code: [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) & GetSolverBody ( const int32 Index )


description: Indicate that no more bodies should be added until the next tick (when Reset is called). Used to ensure that no bodies are added in parallel calls to GatherInput.

code: void Lock()


description: The maximum number of bodies the container can hold (untilReset()is called again)

code: int Max() const


description: The number of bodies in the container.

code: int Num() const


description: Clear the bodies array and allocate enough space for at least MaxBodies bodies.

code: void Reset ( int MaxBodies )


className: NumBodiesPerChunk

description: Settings for the Solver Body array.

code: static const int32 NumBodiesPerChunk = 256;


description: Scatter the solver results back to the particles represented by our SolverBodies. Range version used for parallization.

code: void ScatterOutput ( const int32 BeginIndex, const int32 EndIndex )


description: Can be called after ApplyCorrections to update inertia to match the current transform.

code: void UpdateRotationDependentState()


description: Recalculate the velocities of all bodies based on their transform deltas.

code: void SetImplicitVelocities ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


className: FSolverBodyContainer

description: This container holds all the state of bodies in an island. Dynamics will only appear in one island, but kinematics are in multiple and so their state will be duplicated in each island. This is ok - we do not write to the state of any kinematic bodies in the constraint solvers. We also assume that the number of kinematics is small compared to the number of dynamics. If this is commonly untrue we may want to consider having a separate (global) container of kinematic solver bodies.

code: class FSolverBodyContainer


className: FSolverBodyPtrPair

description: Pointers are only valid for the Constraint Solving phase of the tick

code: typedef [TVector](API\Runtime\Chaos\Chaos\TVector)< [FSolverBody](API\Runtime\Chaos\Chaos\Evolution\FSolverBody) *, 2 > FSolverBodyPtrPair


className: FSolverReal

description: Set the math types used by the constraint solvers when single precision is acceptable. NOTE: public APIs should still use FReal, FVec3 etc. whereas FSolverReal and associated types are for use internally where double precision is unnecessary and causes performance issues and/or memory bloat.


code: typedef [TMatrix33](API\Runtime\ChaosCore\Chaos\TMatrix33)< [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) > FSolverMatrix33


code: typedef [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) > FSolverVec3


code: typedef [TRotation3](API\Runtime\ChaosCore\Chaos\TRotation3)< [FSolverReal](API\Runtime\Chaos\Chaos\Evolution\FSolverReal) > FSolverRotation3


description: Add all the required bodies to the body container (required for the constraints added with AddConstraints)

code: virtual void AddBodies ( [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


description: RBAN API. Add all (active) constraints to the solver.

code: virtual void AddConstraints()


description: Island API. Add a set of constraints to the solver. This can be called multiple times: once for each island in an IslandGroup, but there will never be more constraints added than specified inReset(). NOTE: this should not do any actual data gathering - it should just add to the list of constraints in this group. All data gathering is handled in GatherInput.

code: virtual void AddConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [Private::FPBDIslandConstraint](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraint) * > & Constraints )


description: Apply the position solve to all constraints in the container

code: virtual void ApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


description: Apply the projection solve to all constraints in the container

code: virtual void ApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


description: Apply the velocity solve to all constraints in the container

code: virtual void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


className: ESolverPhase

code: enum ESolverPhase { PreApplyPositionConstraints, PostApplyPositionConstraints, PreApplyVelocityConstraints, PostApplyVelocityConstraints, PreApplyProjectionConstraints, PostApplyProjectionConstraints, }


className: FContainerSolverTypeA

code: typedef T1 FContainerSolverTypeA


className: FContainerSolverTypeB

code: typedef T2 FContainerSolverTypeB


code: virtual void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginIndex, const int32 EndIndex )


code: void CallABTestFunctor ( const [ESolverPhase](API\Runtime\Chaos\Chaos\Evolution\TABTestingConstraintContainerSol-\ESolverPhase) Phase )


code: virtual int32 GetNumConstraints() const


code: virtual void PreApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void PreApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void PreApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Set the maximum number of constraints the solver will have to handle. This will be called only once per tick, so containers resized here will not have to resize again this tick so that pointers to elements in the container will remain valid for the tick (but not beyond).

code: virtual void Reset ( const int32 MaxConstraints )


code: virtual void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginIndex, const int32 EndIndex )


code: TABTestingConstraintContainerSolver ( [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FContainerSolverTypeA](API\Runtime\Chaos\Chaos\Evolution\TABTestingConstraintContainerSol-\FContainerSolver-) > && InSolverA, [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FContainerSolverTypeB](API\Runtime\Chaos\Chaos\Evolution\TABTestingConstraintContainerSol-\FContainerSolver-_1) > && InSolverB, const int32 InPriority, const [FABTestFunctor](API\Runtime\Chaos\Chaos\Evolution\TABTestingConstraintContainerSol-\FABTestFunctor) & InABTestFunctor )


className: TABTestingConstraintContainerSolver

description: The first solver passed in is assumed to be the reference - its results will be used to generate the outputs. The second solver results will be compared and discarded.

code: template<typename T1, typename T2> class TABTestingConstraintContainerSolver : public [Chaos::FConstraintContainerSolver](API\Runtime\Chaos\Chaos\Evolution\FConstraintContainerSolver)

ABTestFunctor

type: FABTestFunctor

SolverA

type: TUniquePtr<FCo...


code: virtual void AddBodies ( [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


code: virtual void AddConstraints()


code: virtual void AddConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [Private::FPBDIslandConstraint](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraint) * > & Constraints )


code: virtual void ApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: virtual void ApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: virtual void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


className: FConstraintHandleType

code: typedef typename FConstraintContainerType::FConstraintContainerHandle FConstraintHandleType


code: virtual void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginIndex, const int32 EndIndex )


code: virtual int32 GetNumConstraints() const


code: TIndexedConstraintContainerSolver ( [FConstraintContainerType](API\Runtime\Chaos\Chaos\Evolution\TIndexedConstraintContainerSolve-\FConstraintConta-) & InConstraintContainer, const int32 InPriority )


className: TIndexedConstraintContainerSolver

description: A solver container for use by constraint containers that implement the solve methods directly and hold all their constraints in arrays and (Joints, Suspension, ...). This Solver just calls into the Container with the list of constraint indices to solve. There will be one of these created for each constraint solver task, as determined by the constraint graph.

code: template<typename ConstraintContainerType> class TIndexedConstraintContainerSolver : public [Chaos::FConstraintContainerSolver](API\Runtime\Chaos\Chaos\Evolution\FConstraintContainerSolver)


code: const [FConstraintContainer](API\Runtime\Chaos\Chaos\Evolution\TIndexedContainerConstraintHandl-\FConstraintConta-) * ConcreteContainer() const


code: virtual void SetEnabled ( bool bInEnabled )


code: TIndexedContainerConstraintHandle()


code: TIndexedContainerConstraintHandle ( [FConstraintContainer](API\Runtime\Chaos\Chaos\Evolution\TIndexedContainerConstraintHandl-\FConstraintConta-) * InConstraintContainer, int32 InConstraintIndex )


className: TIndexedContainerConstraintHandle

description: Utility base class for FIndexedConstraintHandles

code: template<typename T_CONTAINER> class TIndexedContainerConstraintHandle : public [Chaos::FIndexedConstraintHandle](API\Runtime\Chaos\Chaos\Evolution\FIndexedConstraintHandle)


code: TPBDIndexedConstraintContainer ( [FConstraintHandleTypeID](API\Runtime\Chaos\Chaos\FConstraintHandleTypeID) InType )


className: TPBDIndexedConstraintContainer

code: template<typename ConstaintContainerType> class TPBDIndexedConstraintContainer : public [Chaos::FPBDIndexedConstraintContainer](API\Runtime\Chaos\Chaos\Evolution\FPBDIndexedConstraintContainer)


code: virtual void AddBodies ( [FSolverBodyContainer](API\Runtime\Chaos\Chaos\Evolution\FSolverBodyContainer) & SolverBodyContainer )


code: virtual void AddConstraints()


code: virtual void AddConstraints ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [Private::FPBDIslandConstraint](API\Runtime\Chaos\Chaos\Island\FPBDIslandConstraint) * > & Constraints )


code: virtual void ApplyPositionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


description: Create RBAN solver: just solves all constraints in the container in the container's order.

code: virtual [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FConstraintContainerSolver](API\Runtime\Chaos\Chaos\Evolution\FConstraintContainerSolver) > CreateSceneSolver ( const int32 Priority )


code: virtual void ApplyProjectionConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


code: virtual void ApplyVelocityConstraints ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 It, const int32 NumIts )


description: Create Main Scene solver: solves constraints in groups determined by the island manager.

code: virtual [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FConstraintContainerSolver](API\Runtime\Chaos\Chaos\Evolution\FConstraintContainerSolver) > CreateGroupSolver ( const int32 Priority )


code: typedef typename FConstraintContainerType::FConstraintContainerHandle FConstraintHandleType


code: virtual void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void GatherInput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginIndex, const int32 EndIndex )


code: virtual int32 GetNumConstraints() const


code: virtual void Reset ( const int32 MaxConstraints )


code: virtual void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: virtual void ScatterOutput ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, const int32 BeginIndex, const int32 EndIndex )


code: TSimpleConstraintContainerSolver ( [FConstraintContainerType](API\Runtime\Chaos\Chaos\Evolution\TSimpleConstraintContainerSolver\FConstraintConta-) & InConstraintContainer, const int32 InPriority )


className: TSimpleConstraintContainerSolver

description: FPBDCollisionContainerSolver

code: template<typename ConstraintContainerType> class TSimpleConstraintContainerSolver : public [Chaos::FConstraintContainerSolver](API\Runtime\Chaos\Chaos\Evolution\FConstraintContainerSolver)

ConstraintContainer

type: FConstraintCont...


code: typedef [TAABB](API\Runtime\Chaos\Chaos\TAABB)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > FAABB3


className: CVarDynamicTreeSkipCheckAuntOnRotate


className: DynamicTreeLeafCapacity

code: static int32 DynamicTreeLeafCapacity = 8;


className: DynamicTreeSkipCheckAuntOnRotate

code: static bool DynamicTreeSkipCheckAuntOnRotate = false;


className: SplitAtAverageCenter

code: static int32 SplitAtAverageCenter = 1;


className: SplitOnVarianceAxis

code: static int32 SplitOnVarianceAxis = 1;


className: UpdateDirtyElementPayloadData

code: static int32 UpdateDirtyElementPayloadData = 1;


className: FAABBTreeCVars

code: struct FAABBTreeCVars


className: CVarDirtyElementMaxGridCellQueryCount


className: DynamicTreeBoundingBoxPadding

code: static float DynamicTreeBoundingBoxPadding = 5.0f;


className: CVarDirtyElementMaxPhysicalSizeInCells


className: DirtyElementGridCellSize

code: static int32 DirtyElementGridCellSize = 1000;


className: DirtyElementMaxCellCapacity

code: static int32 DirtyElementMaxCellCapacity = 32;


className: DirtyElementMaxGridCellQueryCount

code: static int32 DirtyElementMaxGridCellQueryCount = 340;


className: DirtyElementMaxPhysicalSizeInCells

code: static int32 DirtyElementMaxPhysicalSizeInCells = 16;


className: FAABBTreeDirtyGridCVars

code: struct FAABBTreeDirtyGridCVars


code: void Serialize ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


code: FAABBTreePayloadInfo ( int32 InGlobalPayloadIdx, int32 InDirtyIdx, int32 InLeafIdx, int32 InDirtyGridOverflowIdx, int32 InNodeIdx )


className: FAABBTreePayloadInfo

code: struct FAABBTreePayloadInfo


code: const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & GetMax() const


code: const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & GetMin() const


code: bool Intersects ( const [FAABBVectorized](API\Runtime\Chaos\Chaos\FAABBVectorized) & Other ) const


code: bool RaycastFast ( const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & StartPoint, const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & InvDir, const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & Parallel, const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & Length ) const


code: void SetMax ( const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & InMax )


code: [FAABBVectorized](API\Runtime\Chaos\Chaos\FAABBVectorized) & Thicken ( const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & Thickness )


code: template<typename T> FAABBVectorized ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & AABB )


code: FAABBVectorized ( const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & InMin, const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & InMax )


className: FAABBVectorized

code: class FAABBVectorized


code: const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & GetMax() const


code: const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & GetMin() const


code: void SetMin ( const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & InMin )


code: bool Intersects ( const [FAABBVectorizedDouble](API\Runtime\Chaos\Chaos\FAABBVectorizedDouble) & Other ) const


code: bool RaycastFast ( const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & StartPoint, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & InvDir, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Parallel, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Length, [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & LatestStartTime ) const


code: void SetMin ( const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & InMin )


code: void SetMax ( const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & InMax )


code: [FAABBVectorizedDouble](API\Runtime\Chaos\Chaos\FAABBVectorizedDouble) & Thicken ( const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Thickness )


code: template<typename T> FAABBVectorizedDouble ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & AABB )


code: FAABBVectorizedDouble ( const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & InMin, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & InMax )


className: FAABBVectorizedDouble

code: class FAABBVectorizedDouble


className: bHasPayloadOnInternalThread

code: static constexpr bool bHasPayloadOnInternalThread = true;


description: static

code: template<typename TParticle> static void ComputeParticleQueryFilterDataFromShapes ( const TParticle & Particle, [FCollisionFilterData](API\Runtime\Chaos\Chaos\FCollisionFilterData) & OutQueryFilterData )


description: static

code: template<typename TParticle> static void ComputeParticleSimFilterDataFromShapes ( const TParticle & Particle, [FCollisionFilterData](API\Runtime\Chaos\Chaos\FCollisionFilterData) & OutSimFilterData )


code: void DebugDraw ( const bool bExternal, const bool bHit ) const


description: Should only be used by GT and scene query threads where an appropriate lock has been acquired.

code: [FGeometryParticle](API\Runtime\Chaos\Chaos\FGeometryParticle) * GetExternalGeometryParticle_ExternalThread() const


description: Should only be used by PT.


code: bool operator== ( const [FAccelerationStructureHandle](API\Runtime\Chaos\Chaos\FAccelerationStructureHandle) & Rhs ) const


code: bool operator!= ( const [FAccelerationStructureHandle](API\Runtime\Chaos\Chaos\FAccelerationStructureHandle) & Rhs ) const


code: bool PrePreQueryFilter ( const void * QueryData ) const


code: bool PrePreSimFilter ( const void * SimData ) const


code: void Serialize ( [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar )


code: void UpdateFrom ( const [FAccelerationStructureHandle](API\Runtime\Chaos\Chaos\FAccelerationStructureHandle) & InOther )


code: template<bool bPersistent> FAccelerationStructureHandle ( [TGeometryParticleHandleImp](API\Runtime\Chaos\Chaos\TGeometryParticleHandleImp)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3, bPersistent > & InHandle )


code: FAccelerationStructureHandle ( [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * InHandle )


code: FAccelerationStructureHandle ( [FGeometryParticle](API\Runtime\Chaos\Chaos\FGeometryParticle) * InGeometryParticle, bool bUsePrefiltering )


className: FAccelerationStructureHandle

description: Wrapper that holds both physics thread data and GT data. It's possible that the physics handle is null if we're doing operations entirely on external threads

code: class FAccelerationStructureHandle


code: void SetEmitterFlag ( bool LocalEmitter, bool GlobalEmitter )


code: static [EventEmitterFlag](API\Runtime\Chaos\Chaos\Chaos__EventEmitterFlag) ComputeEmitterFlag ( bool LocalEmitter, bool GlobalEmitter )


code: virtual void ApplyInSerial ( ParticleType & Particles, const T Dt, const int32 ElementIndex ) const


className: FBaseEventFlag

code: struct FBaseEventFlag

EmitterFlag

type: EventEmitterFla...


className: Base

code: typedef [FXPBDCorotatedConstraints](API\Runtime\Chaos\Chaos\FXPBDCorotatedConstraints)< T, ParticleType > Base


code: virtual [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > > GetPolarDelta ( const ParticleType & Particles, const T Dt, const int32 ElementIndex, const T Tol ) const


description: This one only accepts tetmesh input and mesh

code: FBlendedXPBDCorotatedConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const bool bRecordMetricIn, const T & EMesh, const T & NuMesh, const T & InZeta )


code: FBlendedXPBDCorotatedConstraints ( const ParticleType & InParticles, const [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 4 >> & InMesh, const [TArray](API\Runtime\Core\Containers\TArray)< T > & EMeshArray, const T & NuMesh, const bool bRecordMetricIn, const T & InZeta )


className: FBlendedXPBDCorotatedConstraints

code: template<typename T, typename ParticleType> class FBlendedXPBDCorotatedConstraints : public [Chaos::Softs::FXPBDCorotatedConstraints< T, ParticleType >](API\Runtime\Chaos\Chaos\FXPBDCorotatedConstraints)


code: virtual [TVec4](API\Runtime\ChaosCore\Chaos\TVec4)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > > GetDeterminantDelta ( const ParticleType & Particles, const T Dt, const int32 ElementIndex, const T Tol ) const


className: FilterFarBodies

code: static int32 FilterFarBodies = 0;


className: FBoundingVolumeCVars

code: struct FBoundingVolumeCVars


description: Find the closest point on the surface, and return the separating distance and axis.

code: virtual [FReal](API\Runtime\ChaosCore\Chaos\FReal) PhiWithNormal ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & x, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Normal ) const


code: virtual void Serialize ( [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar )


code: void SerializeImp ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


code: virtual void Serialize ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


code: class FBoxFloat3 : public [Chaos::FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject)


className: FBreakingData

description: BreakingData passed from the physics solver to subsystems

code: struct FBreakingData : public [Chaos::FBaseEventFlag](API\Runtime\Chaos\Chaos\FBaseEventFlag)

bFromCrumble

type: bool

Proxy

type: IPhysicsProxyBa...

description: The pointer to the proxy should be used with caution on the Game Thread.


code: FBreakingDataExt ( const [FBreakingData](API\Runtime\Chaos\Chaos\FBreakingData) & InBreakingData )


code: FBreakingDataExt ( [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) InLocation, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) InVelocity, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) InAngularVelocity, [FReal](API\Runtime\ChaosCore\Chaos\FReal) InMass, [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * InParticle, [FReal](API\Runtime\ChaosCore\Chaos\FReal) InBoundingboxVolume, [FReal](API\Runtime\ChaosCore\Chaos\FReal) InBoundingboxExtentMin, [FReal](API\Runtime\ChaosCore\Chaos\FReal) InBoundingboxExtentMax, int32 InSurfaceType )


className: FBreakingDataExt

description: BreakingData used in the subsystems

code: struct FBreakingDataExt

BoundingBox

type: FBox

PhysicalMaterialName

type: FName

description: Please don't be tempted to add the code below back.

TransformRotation

type: FQuat

TransformScale

type: FVector


className: TreeAndGrid

code: enum { TreeAndGrid = 3 }


className: TreeOfGridAndGrid

code: enum { TreeOfGridAndGrid = 4 }


className: FBroadPhaseConfig

code: struct FBroadPhaseConfig

BroadphaseType

description: Broadphase Type from the enum above.

MaxPayloadSize

type: FRealSingle


code: const [TArray](API\Runtime\Core\Containers\TArray)< int32 > FindAllIntersections ( const [FAABB3](API\Runtime\Chaos\Chaos\FAABB3) & Object ) const


code: [FBVHParticles](API\Runtime\Chaos\Chaos\FBVHParticles) * NewCopy() const


code: [FBVHParticles](API\Runtime\Chaos\Chaos\FBVHParticles) & operator= ( const [FBVHParticles](API\Runtime\Chaos\Chaos\FBVHParticles) & Other )


code: [FBVHParticles](API\Runtime\Chaos\Chaos\FBVHParticles) & operator= ( [FBVHParticles](API\Runtime\Chaos\Chaos\FBVHParticles) && Other )


code: static [FBVHParticles](API\Runtime\Chaos\Chaos\FBVHParticles) * SerializationFactory ( [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar, [FBVHParticles](API\Runtime\Chaos\Chaos\FBVHParticles) * BVHParticles )


code: void Serialize ( [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar )


code: void Serialize ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


code: void UpdateAccelerationStructures()


code: FBVHParticles ( [FBVHParticles](API\Runtime\Chaos\Chaos\FBVHParticles) && Other )


code: FBVHParticles ( [FParticles](API\Runtime\Chaos\Chaos\FParticles) && Other )


code: FBVHParticles &40; const FBVHParticles & Other &41;


className: FBVHParticles

code: class FBVHParticles : public [Chaos::TParticles< FReal, 3 >](API\Runtime\Chaos\Chaos\TParticles)


code: typedef [TBVHParticles](API\Runtime\Chaos\Chaos\TBVHParticles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > FBVHParticlesFloat3


code: int32 GetFastMovingKinematicIndex ( const [FPBDCollisionConstraint](API\Runtime\Chaos\Chaos\Collision\FPBDCollisionConstraint) * Constraint, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) Displacements ) const


code: FCCDConstraint ( [FPBDCollisionConstraint](API\Runtime\Chaos\Chaos\Collision\FPBDCollisionConstraint) *const InConstraint, [FCCDParticle](API\Runtime\Chaos\Chaos\FCCDParticle) * InParticle, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) Displacements )


className: FCCDConstraint

description: FCCDParticleholds data used for applying CCD constraints. We create aFCCDConstraintfor each swept constraint.

code: struct FCCDConstraint

Particle

type: FCCDParticle&#...

SweptConstraint

type: FPBDCollisionCo...


description: Variant of the two-particle of DeltaExceedsThreshold which chooses DeltaX: For rigid particles, use X-P. For non-rigids, use Vec3::ZeroVector. R: For rigid particles, use Q. For non-rigids, use R.

code: static bool DeltaExceedsThreshold ( const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) & Particle0, const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) & Particle1 )


description: Return true if DeltaX indicates a movement beyond a set of threshold distances for each local axis.

code: static bool DeltaExceedsThreshold ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & AxisThreshold, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DeltaX, const FQuat & R )


description: Variant of the two-particle of DeltaExceedsThreshold which chooses DeltaX: For rigid particles, use V*Dt. For non-rigids, use Vec3::ZeroVector. R: For rigid particles, use Q. For non-rigids, use R.

code: static bool DeltaExceedsThreshold ( const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) & Particle0, const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) & Particle1, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: static bool DeltaExceedsThreshold ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & AxisThreshold, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DeltaX, const FQuat & R, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & OutAbsLocalDelta, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & AxisThresholdScaled, [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & AxisThresholdDiff )


description: Return true if a pair of DeltaXs potentially indicate closing motion between two bodies which would cause the crossing of a combined threshold on any local axis.

code: static bool DeltaExceedsThreshold ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & AxisThreshold0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DeltaX0, const FQuat & R0, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & AxisThreshold1, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & DeltaX1, const FQuat & R1 )


code: static [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) GetParticleTransformAtTOI ( const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * Particle, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) TOI, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


code: void ApplyConstraintsPhaseCCD ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt, [Private::FCollisionConstraintAllocator](API\Runtime\Chaos\Chaos\Collision\FCollisionConstraintAllocator) * CollisionAllocator, const int32 NumDynamicParticles )


description: A post process on CCD contacts to ensure that CCD objects never pass through non-dynamic objects.

code: void ApplyCorrections ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Dt )


description: Convert this contact to a probe.

code: void ConvertToProbe()


description: Disable this contact.

code: void Disable()


code: const [FGeometryParticleHandle](API\Runtime\Chaos\Chaos\FGeometryParticleHandle) * GetParticle ( const int32 ParticleIndex ) const


description: Modifying functions

code: void Enable()