code: namespace Chaos { template<class T, class TV> TV Chaos::RowMaj3x3RobustSolveLinearSystem ( const T * A, const TV & b ) }


module: Chaos

code: namespace Chaos { template<class T, class TV> TV Chaos::RowMaj3x3Multiply ( const T * A, const TV & x ) }


code: namespace Chaos { template<class T> void Chaos::RowMaj3x3Set ( T * A, const int32 i, const int32 j, const T Value ) }


code: namespace Chaos { template<class T> void Chaos::RowMaj3x3SetCol ( T * A, const int32 j, const T * Values ) }


code: namespace Chaos { template<class T, class TV> void Chaos::RowMaj3x3SetCol ( T * A, const int32 j, const TV Value ) }


code: namespace Chaos { template<class T> void Chaos::RowMaj3x3SetRow ( T * A, const int32 i, const T * Values ) }


code: namespace Chaos { template<class T, class TV> void Chaos::RowMaj3x3SetRow ( T * A, const int32 i, const TV Value ) }


code: namespace Chaos { template<class T> void Chaos::RowMaj3x3Transpose ( const T * A, T * Transpose ) }


code: template<typename T_PARTICLEHANDLE> static const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & GetPosition ( T_PARTICLEHANDLE Particle )


code: typedef [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [Chaos::FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject), ESPMode::NotThreadSafe > NotThreadSafeSharedPtr_FImplicitObject


code: template<typename T_PARTICLEHANDLE> static const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & GetRotation ( T_PARTICLEHANDLE Particle )


code: template<typename T_PARTICLEHANDLE> static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Position ( T_PARTICLEHANDLE Particle )


code: static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Position ( [TPBDRigidParticles](API\Runtime\Chaos\TPBDRigidParticles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > & Particles, const int32 Index )


code: template<typename T_PARTICLEHANDLE> static [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & Rotation ( T_PARTICLEHANDLE Particle )


code: static [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & Rotation ( [TPBDRigidParticles](API\Runtime\Chaos\TPBDRigidParticles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > & Particles, const int32 Index )


className: FParticleSpatialAccessorPQ

code: class FParticleSpatialAccessorPQ


className: FParticleSpatialAccessorXR

code: class FParticleSpatialAccessorXR


code: template<typename T_PARTICLEHANDLE> static const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & ActorWorldToParticleWorld ( T_PARTICLEHANDLE Particle, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & ActorWorldT )


code: template<typename T_PARTICLEHANDLE> static const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & ActorLocalToParticleLocal ( T_PARTICLEHANDLE Particle, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & ActorLocalT )


code: template<typename T_PARTICLEHANDLE> static void AddForceAtPositionWorld ( T_PARTICLEHANDLE Particle, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Force, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Position )


code: template<typename T_PARTICLEHANDLE> static void AddForceAtPositionLocal ( T_PARTICLEHANDLE Particle, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & LocalForce, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & LocalPosition )


code: template<typename T_PARTICLEHANDLE> static [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) GetActorWorldTransform ( T_PARTICLEHANDLE Particle )


code: template<typename T_PARTICLEHANDLE> static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetCoMWorldPosition ( T_PARTICLEHANDLE Particle )


code: static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetCoMWorldPosition ( [TPBDRigidParticles](API\Runtime\Chaos\TPBDRigidParticles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > & Particles, const int32 Index )


code: template<typename T_PARTICLEHANDLE> static [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) GetCoMWorldRotation ( T_PARTICLEHANDLE Particle )


code: static [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) GetCoMWorldRotation ( [TPBDRigidParticles](API\Runtime\Chaos\TPBDRigidParticles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > & Particles, const int32 Index )


code: template<typename T_PARTICLEHANDLE> static [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) GetCoMWorldTransform ( T_PARTICLEHANDLE Particle )


code: template<typename T_PARTICLEHANDLE> static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetPreviousVelocityAtCoMRelativePosition ( T_PARTICLEHANDLE Particle, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & RelPos )


description: Get the velocity at point 'RelPos', where 'RelPos' is a world-space position relative to the Particle's center of mass.

code: template<typename T_PARTICLEHANDLE> static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) GetVelocityAtCoMRelativePosition ( T_PARTICLEHANDLE Particle, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & RelPos )


code: template<typename T_PARTICLEHANDLE> static [FMatrix33](API\Runtime\ChaosCore\Chaos\FMatrix33) GetWorldInertia ( T_PARTICLEHANDLE Particle )


code: template<typename T_PARTICLEHANDLE> static [FMatrix33](API\Runtime\ChaosCore\Chaos\FMatrix33) GetWorldInvInertia ( T_PARTICLEHANDLE Particle )


description: Convert an particle position into a com-local-space position

code: template<typename T_PARTICLEHANDLE> static [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) ParticleLocalToCoMLocal ( T_PARTICLEHANDLE Particle, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & P )


description: Convert a particle rotation into a com-local-space rotation

code: template<typename T_PARTICLEHANDLE> static [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) ParticleLocalToCoMLocal ( T_PARTICLEHANDLE Particle, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & Q )


description: Convert an particle-local-space transform into a com-local-space transform

code: template<typename T_PARTICLEHANDLE> static [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) ParticleLocalToCoMLocal ( T_PARTICLEHANDLE Particle, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & T )


code: template<typename T_PARTICLEHANDLE> static void SetActorWorldTransform ( T_PARTICLEHANDLE Particle, const [FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & ActorWorldT )


description: Update the particle's position and rotation by specifying a new center of mass transform.

code: template<typename T_PARTICLEHANDLE> static void SetCoMWorldTransform ( T_PARTICLEHANDLE Particle, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & PCoM, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & QCoM )


code: static void SetCoMWorldTransform ( [TPBDRigidParticles](API\Runtime\Chaos\TPBDRigidParticles)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > & Particles, const int32 Index, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & PCoM, const [FRotation3](API\Runtime\ChaosCore\Chaos\FRotation3) & QCoM )


description: Particle Space == Actor Space (Transforms) Velocities in CoM Space.

code: template<typename TSpatialAccessor> class FParticleUtilities_ActorSpace


className: PMatrix

description: No destructors are accessible with public or protected access.

code: template<class T, int m, int n> class PMatrix


code: T operator() ( const int32 i, const int32 j )


code: const T operator() ( const int32 i, const int32 j ) const


code: [VectorND](API\Runtime\ChaosCore\Chaos\VectorND)< T > operator* ( const [VectorND](API\Runtime\ChaosCore\Chaos\VectorND)< T > & vector ) const


className: SparseMatrix

code: template<class T> class SparseMatrix


className: SpatialAccelerationType

code: typedef uint8 SpatialAccelerationType


code: const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & BoundingBox() const


code: [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > Center() const


description: Returns sample points centered about the origin.

code: [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > > ComputeLocalSamplePoints() const


description: Returns sample points at the current location of the box.

code: [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > > ComputeSamplePoints() const


code: bool Contains ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Point ) const


code: bool Contains ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Point, const T Tolerance ) const


description: A bounding box that will fail all overlap tests. NOTE: this bounds cannot be transformed (all transform return EmptyAABB)

code: static [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > EmptyAABB()


code: [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > Extents() const


code: [Pair](API\Runtime\ChaosCore\Chaos\Pair)< [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d >, bool > FindClosestIntersectionImp ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & StartPoint, const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & EndPoint, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Thickness ) const


code: [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > FindGeometryOpposingNormal ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & DenormDir, int32 FaceIndex, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & OriginalNormal ) const


code: [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > FindClosestPoint ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & StartPoint, const T Thickness ) const


description: Given a set of points, wrap an AABB around them

code: template<typename... Points> static [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > FromPoints ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & P0, const Points &... InPoints )


description: A bounding box that overlaps all space. NOTE: this bounds cannot be transformed (all transforms return FullAABB)

code: static [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > FullAABB()


code: static T GetArea ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Dim )


code: [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > GetCenter() const


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > GetIntersection ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & Other ) const


code: [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > GetCenterOfMass() const


code: [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d, d > GetInertiaTensor ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Mass ) const


code: static [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3, 3 > GetInertiaTensor ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Mass, const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > & Dim )


code: uint16 GetMaterialIndex ( uint32 HintIndex ) const


code: static [TRotation](API\Runtime\Chaos\Chaos\TRotation)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > GetRotationOfMass()


code: static T GetVolume ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, 3 > & Dim )


description: Grow along a vector (as if swept by the vector's direction and magnitude)

code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & GrowByVector ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & V )


code: void GrowToInclude ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & V )


code: void GrowToInclude ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & Other )


code: template<typename TReal> bool Intersects ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< TReal, d > & Other ) const


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > InverseTransformedAABB ( const [Chaos::FRigidTransform3](API\Runtime\ChaosCore\Chaos\FRigidTransform3) & ) const


description: If this AABB covering all of space (all overlap tests will succeed) NOTE: This just checks if Max.X is Real::Max. The assumption is that max numeric values are only used when explicitly set inEmptyAABB()andFullAABB().

code: bool IsFull() const


description: If this AABB empty (all overlap tests will fail) NOTE: This just checks if Min.X is Real::Max. The assumption is that max numeric values are only used when explicitly set inEmptyAABB()andFullAABB().

code: bool IsEmpty() const


description: Scale the AABB relative to its center IMPORTANT : this does not support negative scale

code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & LocalScale ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & InScale )


code: const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Max() const


code: const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Min() const


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & operator= ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & Other )


code: [FReal](API\Runtime\ChaosCore\Chaos\FReal) PhiWithNormal ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & X, [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & Normal ) const


description: The radius of the sphere centered on the AABB origin (not the AABB center) which would encompass this AABB.

code: T OriginRadius() const


code: bool Raycast ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & StartPoint, const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & Dir, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Length, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Thickness, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & OutTime, [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & OutPosition, [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & OutNormal, int32 & OutFaceIndex ) const


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & operator= ( [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > && Other )


code: bool RaycastFast ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & StartPoint, const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & Dir, const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & InvDir, const bool * bParallel, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Length, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvLength, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & OutEntryTime, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & OutExitTime ) const


code: bool RaycastFast ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & StartPoint, const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & Dir, const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & InvDir, const bool * bParallel, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Length, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InvLength, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & OutTime, [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & OutPosition ) const


description: Scale the AABB relative to the origin IMPORTANT : this does not support negative scale

code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & Scale ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & InScale )


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & ScaleWithNegative ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & InScale )


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


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


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & ShrinkSymmetrically ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Thickness )


code: void ShrinkToInclude ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & Other )


code: [FReal](API\Runtime\ChaosCore\Chaos\FReal) SignedDistance ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), d > & x ) const


code: [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > Support ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Direction, const T Thickness, int32 & VertexIndex ) const


description: Support vertex in the specified direction, assuming each face has been moved inwards by InMargin.

code: [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) SupportCore ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Direction, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InMargin, [FReal](API\Runtime\ChaosCore\Chaos\FReal) * OutSupportDelta, int32 & VertexIndex ) const


code: [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > SupportCoreScaled ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Direction, const T InMargin, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Scale, T * OutSupportDelta, int32 & VertexIndex ) const


code: [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) SupportCoreSimd ( const [VectorRegister4Float](API\Runtime\Core\Math\VectorRegister4Float) & Direction, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) InMargin ) const


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & Thicken ( const T Thickness )


description: Grows the box by this vector symmetrically - Changed name because previous Thicken had different semantics which caused several bugs.

code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & ThickenSymmetrically ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Thickness )


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > TransformedAABB ( const [Chaos::TRigidTransform](API\Runtime\Chaos\Chaos\TRigidTransform)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 3 > & ) const


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > TransformedAABB ( const FTransform & ) const


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > TransformedAABB ( const FMatrix & ) const


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > TransformedAABB ( const [Chaos::PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< [FReal](API\Runtime\ChaosCore\Chaos\FReal), 4, 4 > & ) const


description: A single-point bounds at the origin.

code: static [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > ZeroAABB()


code: TAABB ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & Other )


code: template<typename OtherType> TAABB ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< OtherType, d > & Other )


code: TAABB ( [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > && Other )


code: TAABB ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Min, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Max )


className: TAABB

code: template<class T, int d> class TAABB


className: TAABBSpecializeSamplingHelper< T, 3 >::ComputeSamplePoints

code: static TArray< TVector< T, 3 > > ComputeSamplePoints &40; const TAABB< T, 3 > & AABB &41;


className: TAABBSpecializeSamplingHelper< T, 3 >

code: template<typename T> struct TAABBSpecializeSamplingHelper< T, 3 >


code: int32 AddDirtyElementToGrid ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & NewBounds, int32 NewDirtyElement )


code: static [TArray](API\Runtime\Core\Containers\TArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > > ComputeLocalSamplePoints ( const class [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & AABB )


className: TAABBSpecializeSamplingHelper

code: template<typename T, int d> struct TAABBSpecializeSamplingHelper


className: TAABBSpecializeSamplingHelper< T, 2 >::ComputeSamplePoints

code: static TArray< TVector< T, 2 > > ComputeSamplePoints &40; const TAABB< T, 2 > & AABB &41;


className: TAABBSpecializeSamplingHelper< T, 2 >

code: template<typename T> struct TAABBSpecializeSamplingHelper< T, 2 >


description: Returns true if there was enough space in the cell to add the new dirty element index or if the element was already added (This second condition should not happen)

code: bool AddNewDirtyParticleIndexToGridCell ( int32 Hash, int32 NewDirtyIndex )


description: Recursively add overlapping leaves given 2 nodes in the tree

code: void AddNodesOverlappingLeaves ( const [TAABBTreeNode](API\Runtime\Chaos\Chaos\TAABBTreeNode)< T > & LeftNode, const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & LeftBounds, const [TAABBTreeNode](API\Runtime\Chaos\Chaos\TAABBTreeNode)< T > & RightNode, const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & RightBounds, const bool bDirtyFilter )


description: Recursively add overlapping leaves given a root node in the tree

code: void AddRootOverlappingLeaves ( const [TAABBTreeNode](API\Runtime\Chaos\Chaos\TAABBTreeNode)< T > & TreeNode, const bool bDirtyFilter )


code: [NodeAndLeafIndices](API\Runtime\Chaos\Chaos\TAABBTree\NodeAndLeafIndices) AllocateLeafNodeAndLeaf ( const TPayloadType & Payload, const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & NewBounds )


description: Cache for each leaves all the overlapping leaves

code: virtual void CacheOverlappingLeaves()


description: Contract: bShouldRebuild can only ever be cleared by calling the ClearShouldRebuild method, it can be set at will though.

code: virtual void ClearShouldRebuild()


description: Sequential loop over the leaves to fill the overlapping pairs

code: void ComputeOverlappingCacheFromLeaf()


description: Simultaneous tree descent to compute the overlapping leaves

code: void ComputeOverlappingCacheFromRoot ( const bool bDirtyFilter )


code: virtual [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [ISpatialAcceleration](API\Runtime\Engine\Physics\Experimental\ISpatialAcceleration)< TPayloadType, T, 3 > > Copy() const


code: void CopyFrom ( const [TAABBTree](API\Runtime\Chaos\Chaos\TAABBTree)< TPayloadType, TLeafType, bMutable, T > & Other )


code: void DeAllocateInternalNode ( int32 NodeIdx )


className: DefaultMaxChildrenInLeaf

code: static constexpr int32 DefaultMaxChildrenInLeaf = 12;


code: void DeAllocateLeafNode ( int32 NodeIdx )


className: DefaultMaxNumToProcess

code: static constexpr int32 DefaultMaxNumToProcess = 0;


className: DefaultMaxPayloadBounds

code: static constexpr T DefaultMaxPayloadBounds = 100000;


className: DefaultMaxTreeDepth

code: static constexpr int32 DefaultMaxTreeDepth = 16;


description: Returns true if the dirty particle was in the grid and successfully deleted.

code: bool DeleteDirtyParticleIndexFromGridCell ( int32 Hash, int32 DirtyIndex )


code: void DeleteDirtyParticleEverywhere ( int32 DeleteDirtyParticleIdx, int32 DeleteDirtyGridOverflowIdx )


code: bool DirtyElementGridEnabled() const


description: Expensive function: Don't call unless debugging.

code: void DynamicTreeDebugStats()


code: bool EnoughSpaceInGridCell ( int32 Hash )


className: eTimeSlicePhase

code: enum eTimeSlicePhase { PreFindBestBounds, DuringFindBestBounds, ProcessingChildren, }


className: FElement

code: typedef [TPayloadBoundsElement](API\Runtime\Chaos\Chaos\TPayloadBoundsElement)< TPayloadType, T > FElement


description: Fill the overlapping pairs from the previous persistent and not dirty leaves

code: void FillPersistentOverlappingPairs()


description: IMPORTANT : (LWC) this API should be typed on Freal not T, as we want the query API to be using the highest precision while maintaining arbitrary internal precision for the acceleration structure ( based on T )

code: virtual [TArray](API\Runtime\Core\Containers\TArray)< TPayloadType > FindAllIntersections ( const [FAABB3](API\Runtime\Chaos\Chaos\FAABB3) & Box ) const


code: int32 FindBestSibling ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & InNewBounds, bool & bOutAddToLeaf )


description: Given a first node and a leaf index find the overlapping leaves and update the node stack

code: void FindOverlappingLeaf ( const int32 FirstNode, const int32 LeafIndex, [TArray](API\Runtime\Core\Containers\TArray)< int32 > & NodeStack )


className: FNode

code: typedef [TAABBTreeNode](API\Runtime\Chaos\Chaos\TAABBTreeNode)< T > FNode


className: FNodeIndexAndCost

description: Buffers for calculating the best candidate for tree insertion, reset per-calculation to avoid over allocation Tuple of Node/Index/Cost here avoids cache miss when accessing the node and its cost.

code: typedef [TTuple](API\Runtime\Core\Misc\TTuple)< [FNode](API\Runtime\Chaos\Chaos\TAABBTreeNode) &, int32, [FReal](API\Runtime\ChaosCore\Chaos\FReal) > FNodeIndexAndCost


description: Some useful statistics.

code: const [AABBTreeStatistics](API\Runtime\Chaos\Chaos\AABBTreeStatistics) & GetAABBTreeStatistics()


code: bool GetAsBoundsArray ( [TArray](API\Runtime\Core\Containers\TArray)< [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 >> & AllBounds, int32 NodeIdx, int32 ParentNode, [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & Bounds )


code: const [TArray](API\Runtime\Core\Containers\TArray)< TLeafType > & GetLeaves() const


description: This is to make sure important parameters are not changed during inopportune times.

code: void GetCVars()


code: const [TArray](API\Runtime\Core\Containers\TArray)< [TAABBTreeNode](API\Runtime\Chaos\Chaos\TAABBTreeNode)< T > > & GetNodes() const


description: Is the input node Child 0 or Child 1?

code: int32 GetSiblingIndex ( int32 NodeIdx )


code: const int32 GetSubtreeDepth ( const int32 NodeIdx )


code: const [TArray](API\Runtime\Core\Containers\TArray)< [TPayloadBoundsElement](API\Runtime\Chaos\Chaos\TPayloadBoundsElement)< TPayloadType, T > > & GlobalObjects() const


description: Returns the inserted node and leaf.

code: [NodeAndLeafIndices](API\Runtime\Chaos\Chaos\TAABBTree\NodeAndLeafIndices) InsertLeaf ( const TPayloadType & Payload, const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & NewBounds )


className: NodeAndLeafIndices

code: struct NodeAndLeafIndices


code: virtual void Overlap ( const [FAABB3](API\Runtime\Chaos\Chaos\FAABB3) & QueryBounds, [ISpatialVisitor](API\Runtime\Chaos\Chaos\ISpatialVisitor)< TPayloadType, [FReal](API\Runtime\ChaosCore\Chaos\FReal) > & Visitor ) const


code: template<typename SQVisitor> void Overlap ( const [FAABB3](API\Runtime\Chaos\Chaos\FAABB3) & QueryBounds, SQVisitor & Visitor ) const


code: template<typename SQVisitor> bool OverlapFast ( const [FAABB3](API\Runtime\Chaos\Chaos\FAABB3) & QueryBounds, SQVisitor & Visitor ) const


className: PayloadType

code: typedef TPayloadType PayloadType


code: virtual void PrepareCopyTimeSliced ( const [ISpatialAcceleration](API\Runtime\Engine\Physics\Experimental\ISpatialAcceleration)< TPayloadType, T, 3 > & InFrom )


description: Print the overlapping leaves data structure

code: void PrintOverlappingLeaves()


code: virtual void ProgressAsyncTimeSlicing ( bool ForceBuildCompletion )


code: virtual void ProgressCopyTimeSliced ( const [ISpatialAcceleration](API\Runtime\Engine\Physics\Experimental\ISpatialAcceleration)< TPayloadType, T, 3 > & InFrom, int MaximumBytesToCopy )


description: Propagates the leaves dirty flag up to the root node

code: void PropagateLeavesDirtyFlag()


code: virtual void Raycast ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Start, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Dir, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Length, [ISpatialVisitor](API\Runtime\Chaos\Chaos\ISpatialVisitor)< TPayloadType, [FReal](API\Runtime\ChaosCore\Chaos\FReal) > & Visitor ) const


code: template<typename SQVisitor> void Raycast ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Start, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Dir, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Length, SQVisitor & Visitor ) const


code: template<typename SQVisitor> bool RaycastFast ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Start, [FQueryFastData](API\Runtime\Chaos\Chaos\FQueryFastData) & CurData, SQVisitor & Visitor, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Dir, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) InvDir, const bool bParallel ) const


code: template<typename ParticleView> void Reinitialize ( const ParticleView & Particles, int32 InMaxChildrenInLeaf, int32 InMaxTreeDepth, T InMaxPayloadBounds, int32 InMaxNumToProcess, bool bInDynamicTree, bool bInbBuildOverlapCache )


description: Returns true if element was removed successfully.

code: virtual bool RemoveElement ( const TPayloadType & Payload )


code: void RemoveLeafNode ( int32 LeafNodeIdx, const TPayloadType & Payload )


description: Rotate nodes to decrease tree cost Grandchildren can swap with their aunts

code: void RotateNode ( uint32 NodeIdx, bool debugAssert )


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


className: StaticType

code: static constexpr [ESpatialAcceleration](API\Runtime\Chaos\Chaos\Chaos__ESpatialAcceleration) StaticType = std::is_same_v<TAABBTreeLeafArray<TPayloadType>, TLeafType> ? ESpatialAcceleration::AABBTree : (std::is_same_v<TBoundingVolume<TPayloadType>, TLeafType> ? ESpatialAcceleration::AABBTreeBV : ESpatialAcceleration::Unknown);


code: virtual void Sweep ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Start, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Dir, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Length, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) QueryHalfExtents, [ISpatialVisitor](API\Runtime\Chaos\Chaos\ISpatialVisitor)< TPayloadType, [FReal](API\Runtime\ChaosCore\Chaos\FReal) > & Visitor ) const


code: template<typename SQVisitor> void Sweep ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Start, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Dir, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) Length, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) QueryHalfExtents, SQVisitor & Visitor ) const


code: template<typename SQVisitor> bool SweepFast ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Start, [FQueryFastData](API\Runtime\Chaos\Chaos\FQueryFastData) & CurData, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) QueryHalfExtents, SQVisitor & Visitor, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Dir, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) InvDir, const bool bParallel ) const


code: void UpdateAncestorBounds ( int32 NodeIdx, bool bDoRotation )


code: int32 UpdateDirtyElementInGrid ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & NewBounds, int32 DirtyElementIndex, int32 DirtyGridOverflowIdx )


description: Returns true if element was updated, or false when it was added instead.

code: virtual bool UpdateElement ( const TPayloadType & Payload, const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & NewBounds, bool bInHasBounds )


description: Returns true if bounds appear valid. Returns false if extremely large values, contains NaN, or is empty.

code: bool ValidateBounds ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & Bounds )


description: Is the input node Child 0 or Child 1?

code: int32 WhichChildAmI ( int32 NodeIdx )


code: TAABBTree &40; const TAABBTree< TPayloadType, TLeafType, bMutable, T > & Other &41;


code: template<typename [TParticles](API\Runtime\Chaos\Chaos\TParticles)> TAABBTree ( const [TParticles](API\Runtime\Chaos\Chaos\TParticles) & Particles, int32 InMaxChildrenInLeaf, int32 InMaxTreeDepth, T InMaxPayloadBounds, int32 InMaxNumToProcess, bool bInDynamicTree, bool bInUseDirtyTree, bool bInBuildOverlapCache )


className: TAABBTree

code: template<typename TPayloadType, typename TLeafType, bool bMutable, typename T> class TAABBTree : public [Chaos::ISpatialAcceleration< TPayloadType, T, 3 >](API\Runtime\Engine\Physics\Experimental\ISpatialAcceleration)


code: namespace TAABBTreeIntersectionHelper< FQueryFastData, EAABBQueryType { template<> struct TAABBTreeIntersectionHelper< FQueryFastData, EAABBQueryType::Raycast > }


className: TAABBTreeIntersectionHelper< FQueryFastData, EAABBQueryType::Sweep >::Intersects

code: static bool Intersects &40; const FVec3 & Start, FQueryFastData & QueryFastData, FReal & TOI, const FAABB3 & Bounds, const FAABB3 & QueryBounds, const FVec3 & QueryHalfExtents, const FVec3 & Dir, const FVec3 InvDir, const bool bParallel &41;


code: namespace TAABBTreeIntersectionHelper< FQueryFastData, EAABBQueryType { template<> struct TAABBTreeIntersectionHelper< FQueryFastData, EAABBQueryType::Sweep > }


className: TAABBTreeIntersectionHelper< FQueryFastDataVoid, EAABBQueryType::Overlap >::Intersects

code: static bool Intersects &40; const FVec3 & Start, FQueryFastDataVoid & QueryFastData, FReal & TOI, const FAABB3 & Bounds, const FAABB3 & QueryBounds, const FVec3 & QueryHalfExtents, const FVec3 & Dir, const FVec3 InvDir, const bool bParallel &41;


code: namespace TAABBTreeIntersectionHelper< FQueryFastDataVoid, EAABBQueryType { template<> struct TAABBTreeIntersectionHelper< FQueryFastDataVoid, EAABBQueryType::Overlap > }


code: static bool Intersects ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Start, TQueryFastData & QueryFastData, [FReal](API\Runtime\ChaosCore\Chaos\FReal) & TOI, const [FAABB3](API\Runtime\Chaos\Chaos\FAABB3) & Bounds, const [FAABB3](API\Runtime\Chaos\Chaos\FAABB3) & QueryBounds, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & QueryHalfExtents, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Dir, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) InvDir, const bool bParallel )


className: TAABBTreeIntersectionHelper

code: template<typename TQueryFastData, [EAABBQueryType](API\Runtime\Chaos\Chaos\Chaos__EAABBQueryType) Query> struct TAABBTreeIntersectionHelper


code: void AddElement ( const [TPayloadBoundsElement](API\Runtime\Chaos\Chaos\TPayloadBoundsElement)< TPayloadType, T > & Element )


code: void DebugDrawLeaf ( [ISpacialDebugDrawInterface](API\Runtime\Chaos\Chaos\ISpacialDebugDrawInterface)< T > & InInterface, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & InLinearColor, float InThickness ) const


code: void GatherElements ( [TArray](API\Runtime\Core\Containers\TArray)< [TPayloadBoundsElement](API\Runtime\Chaos\Chaos\TPayloadBoundsElement)< TPayloadType, T >> & OutElements )


className: TAABBTreeIntersectionHelper< FQueryFastData, EAABBQueryType::Raycast >::Intersects


description:
Check if the leaf is dirty (if one of the payload have been updated)
Dirty boolean that indicates if the leaf is dirty or not

code: bool IsLeafDirty() const


code: template<typename [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor)> bool OverlapFast ( const [FAABB3](API\Runtime\Chaos\Chaos\FAABB3) & QueryBounds, [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor) & Visitor ) const


code: template<typename [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor), typename TQueryFastData> bool RaycastFast ( const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > & Start, TQueryFastData & QueryFastData, [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor) & Visitor, const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > & Dir, const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > & InvDir, const bool bParallel ) const


description: Print leaf information (bounds) for debugging purpose

code: void PrintLeaf() const


code: template<typename [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor), typename TQueryFastData> bool RaycastFastSimd ( const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Start, TQueryFastData & QueryFastData, [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor) & Visitor, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Dir, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & InvDir, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Parallel, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Length ) const


code: template<typename TQueryFastData, typename [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor)> bool RaycastImpSimd ( const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Start, TQueryFastData & QueryFastData, [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor) & Visitor, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & InvDir, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Parallel, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Length ) const


code: template<bool bSweep, typename TQueryFastData, typename [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor)> bool RaycastSweepImp ( const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > & Start, TQueryFastData & QueryFastData, const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > & QueryHalfExtents, [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor) & Visitor, const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > & Dir, const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > InvDir, const bool bParallel ) const


code: void RemoveElement ( TPayloadType Payload )


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


description: Set thye dirty flag onto the leaf

code: void SetDirtyState ( const bool bDirtyState )


code: template<typename [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor), typename TQueryFastData> bool SweepFast ( const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > & Start, TQueryFastData & QueryFastData, const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > & QueryHalfExtents, [TSQVisitor](API\Runtime\PhysicsCore\TSQVisitor) & Visitor, const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > & Dir, const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > InvDir, const bool bParallel ) const


code: void UpdateElement ( const TPayloadType & Payload, const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, 3 > & NewBounds, bool bHasBounds )


description: Todo: avoid copy?

code: TAABBTreeLeafArray ( const [TArray](API\Runtime\Core\Containers\TArray)< [TPayloadBoundsElement](API\Runtime\Chaos\Chaos\TPayloadBoundsElement)< TPayloadType, T >> & InElems )


className: TAABBTreeLeafArray

code: template<typename TPayloadType, bool bComputeBounds, typename T> struct TAABBTreeLeafArray : public [Chaos::TBoundsWrapperHelper< TPayloadType, T, bComputeBounds >](API\Runtime\Chaos\Chaos\TBoundsWrapperHelper)

bDirtyLeaf

type: bool

description: Flag on the leaf to know if it has been updated

Elems

type: TArray<TPayloa...


code: void DebugDraw ( [ISpacialDebugDrawInterface](API\Runtime\Chaos\Chaos\ISpacialDebugDrawInterface)< T > & InInterface, const [TArray](API\Runtime\Core\Containers\TArray)< [TAABBTreeNode](API\Runtime\Chaos\Chaos\TAABBTreeNode)< T >> & Nodes, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InLinearColor, float InThickness ) const


className: TAABBTreeNode

code: template<typename T> struct TAABBTreeNode

bDirtyNode

type: bool:  1


code: void Add ( const TKey & Key, const TValue & Value )


code: void AddFrom ( const [TArrayAsMap](API\Runtime\Chaos\Chaos\TArrayAsMap)< TKey, TValue > & Source, int32 SourceIndex )


className: ElementType

code: typedef TValue ElementType


code: const TValue * Find ( const TKey & Key ) const


code: TValue & FindChecked ( const TKey & Key )


code: const TValue & FindChecked ( const TKey & Key ) const


code: TValue & FindOrAdd ( const TKey & Key )


code: void RemoveChecked ( const TKey & Key )


className: TArrayAsMap

description: Provides aTMaplike API but backed by a dense array. The keys provided must implement GetUniqueIdx.

code: template<typename TKey, typename TValue> class TArrayAsMap


className: TArrayFaceND

description: No constructors are accessible with public or protected access.

code: template<class T, int d> class TArrayFaceND


className: Base

code: typedef [TArrayNDBase](API\Runtime\ChaosCore\Chaos\TArrayNDBase)< [TArrayND](API\Runtime\Chaos\Chaos\TArrayND)< T, d >, T, d > Base


code: T & operator() ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, d > & Index )


code: [TArrayND](API\Runtime\Chaos\Chaos\TArrayND)< T, d > & operator= ( const [TArrayND](API\Runtime\Chaos\Chaos\TArrayND)< T, d > & Other )


code: [TArrayND](API\Runtime\Chaos\Chaos\TArrayND)< T, d > & operator= ( [TArrayND](API\Runtime\Chaos\Chaos\TArrayND)< T, d > && Other )


code: TArrayND ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, d > & Counts )


code: TArrayND ( const [TArrayND](API\Runtime\Chaos\Chaos\TArrayND)< T, d > & Other )


code: TArrayND ( [TArrayND](API\Runtime\Chaos\Chaos\TArrayND)< T, d > && Other )


code: TArrayND ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, d > & Counts, const [TArray](API\Runtime\Core\Containers\TArray)< T > & Array )


className: TArrayND

description: TArrayND< T, 3 >

code: template<class T, int d> class TArrayND : public [Chaos::TArrayNDBase< TArrayND< T, d >, T, d >](API\Runtime\ChaosCore\Chaos\TArrayNDBase)


code: const TTimeStamp * GetTimestamp() const


className: TBasePullData

code: template<typename TProxy, typename TTimeStamp> struct TBasePullData


code: void AddElement ( const [TPayloadBoundsElement](API\Runtime\Chaos\Chaos\TPayloadBoundsElement)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T > & Payload )


code: virtual [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [ISpatialAcceleration](API\Runtime\Engine\Physics\Experimental\ISpatialAcceleration)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T, d > > Copy() const


code: virtual void DeepAssign ( const [ISpatialAcceleration](API\Runtime\Engine\Physics\Experimental\ISpatialAcceleration)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T, d > & Other )


className: DefaultMaxCells

code: static constexpr int32 DefaultMaxCells = 15;


className: DefaultMaxPayloadBounds

code: static constexpr T DefaultMaxPayloadBounds = 100000;


className: FCellElement

code: typedef [TBVCellElement](API\Runtime\Chaos\Chaos\TBVCellElement)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T, d > FCellElement


code: virtual [TArray](API\Runtime\Core\Containers\TArray)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType) > FindAllIntersections ( const [FAABB3](API\Runtime\Chaos\Chaos\FAABB3) & Box ) const


code: [TArray](API\Runtime\Core\Containers\TArray)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType) > FindAllIntersectionsImp ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & Intersection ) const


className: FPayloadInfo

code: typedef [TBVPayloadInfo](API\Runtime\Chaos\Chaos\TBVPayloadInfo)< T, d > FPayloadInfo


code: void GatherElements ( [TArray](API\Runtime\Core\Containers\TArray)< [TPayloadBoundsElement](API\Runtime\Chaos\Chaos\TPayloadBoundsElement)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T >> & OutElements )


code: [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > GetBounds() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [TPayloadBoundsElement](API\Runtime\Chaos\Chaos\TPayloadBoundsElement)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T > > & GlobalObjects() const


code: bool IsLeafDirty() const


code: [TBoundingVolume](API\Runtime\Chaos\Chaos\TBoundingVolume)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T, d > & operator= ( const [TBoundingVolume](API\Runtime\Chaos\Chaos\TBoundingVolume)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T, d > & Other )


code: [TBoundingVolume](API\Runtime\Chaos\Chaos\TBoundingVolume)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T, d > & operator= ( [TBoundingVolume](API\Runtime\Chaos\Chaos\TBoundingVolume)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T, d > && Other )


code: virtual void Overlap ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & QueryBounds, [ISpatialVisitor](API\Runtime\Chaos\Chaos\ISpatialVisitor)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T > & Visitor ) const


code: template<typename SQVisitor, bool bPruneDuplicates> void Overlap ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & QueryBounds, SQVisitor & Visitor ) const


code: template<typename SQVisitor> bool OverlapFast ( const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & QueryBounds, SQVisitor & Visitor ) const


code: virtual void Raycast ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Start, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Dir, const T Length, [ISpatialVisitor](API\Runtime\Chaos\Chaos\ISpatialVisitor)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T > & Visitor ) const


code: template<typename SQVisitor, bool bPruneDuplicates> void Raycast ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Start, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Dir, const T Length, SQVisitor & Visitor ) const


code: template<typename SQVisitor> bool RaycastFast ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Start, [FQueryFastData](API\Runtime\Chaos\Chaos\FQueryFastData) & CurData, SQVisitor & Visitor, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Dir, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) InvDir, const bool bParallel ) const


code: template<typename SQVisitor> bool RaycastFastSimd ( const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Start, [FQueryFastData](API\Runtime\Chaos\Chaos\FQueryFastData) & CurData, SQVisitor & Visitor, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Dir, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & InvDir, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Parallel, const [VectorRegister4Double](API\Runtime\Core\Math\VectorRegister4Double) & Length ) const


code: template<typename ParticleView> void Reinitialize ( const ParticleView & Particles, const bool bUseVelocity, const T Dt, const int32 MaxCells )


code: virtual bool RemoveElement ( const [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType) & Payload )


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


description: Set the dirty flag onto the leaf

code: void SetDirtyState ( const bool bDirtyState )


className: StaticType

code: static constexpr [ESpatialAcceleration](API\Runtime\Chaos\Chaos\Chaos__ESpatialAcceleration) StaticType = ESpatialAcceleration::BoundingVolume;


code: void Sweep ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Start, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Dir, const T Length, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > QueryHalfExtents, [ISpatialVisitor](API\Runtime\Chaos\Chaos\ISpatialVisitor)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T > & Visitor ) const


code: template<typename SQVisitor, bool bPruneDuplicates> void Sweep ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Start, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Dir, const T Length, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > QueryHalfExtents, SQVisitor & Visitor ) const


code: template<typename SQVisitor> bool SweepFast ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Start, [FQueryFastData](API\Runtime\Chaos\Chaos\FQueryFastData) & CurData, const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & QueryHalfExtents, SQVisitor & Visitor, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & Dir, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) InvDir, const bool bParallel ) const


className: TPayloadType

code: typedef InPayloadType TPayloadType


code: virtual bool UpdateElement ( const [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType) & Payload, const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & NewBounds, bool bHasBounds )


code: TBoundingVolume ( [TBoundingVolume](API\Runtime\Chaos\Chaos\TBoundingVolume)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T, d > && Other )


description: Needed for tree of grids, should we have a more explicit way to copy an array of BVs to avoid this being public?

code: TBoundingVolume ( const [TBoundingVolume](API\Runtime\Chaos\Chaos\TBoundingVolume)< [TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolume\TPayloadType), T, d > & Other )


code: template<typename ParticleView> TBoundingVolume ( const ParticleView & Particles, const bool bUseVelocity, const T Dt, const int32 MaxCells, const T InMaxPayloadBounds )


className: TBoundingVolume

code: template<typename InPayloadType, typename T, int d> class TBoundingVolume : public [Chaos::ISpatialAcceleration< InPayloadType, T, d >](API\Runtime\Engine\Physics\Experimental\ISpatialAcceleration)


code: virtual void DebugDraw ( [ISpacialDebugDrawInterface](API\Runtime\Chaos\Chaos\ISpacialDebugDrawInterface)< T > * InInterface ) const


code: virtual void DeepAssign ( const [ISpatialAcceleration](API\Runtime\Engine\Physics\Experimental\ISpatialAcceleration)< int32, T, d > & Other )


className: DefaultAllowMultipleSplitting

code: static constexpr bool DefaultAllowMultipleSplitting = false;


className: DefaultDt

code: static constexpr T DefaultDt = 0;


className: DefaultMaxLevels

code: static constexpr int32 DefaultMaxLevels = 12;


className: DefaultUseVelocity

code: static constexpr bool DefaultUseVelocity = false;


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


code: [TArray](API\Runtime\Core\Containers\TArray)< int32 > FindAllIntersections ( const [TSpatialRay](API\Runtime\Chaos\Chaos\TSpatialRay)< T, d > & Ray ) const


code: [TArray](API\Runtime\Core\Containers\TArray)< int32 > FindAllIntersections ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Point ) const


code: [TArray](API\Runtime\Core\Containers\TArray)< int32 > FindAllIntersections ( const [TGeometryParticles](API\Runtime\Chaos\Chaos\TGeometryParticles)< T, d > & InParticles, const int32 i ) const


code: template<class T_INTERSECTION> [TArray](API\Runtime\Core\Containers\TArray)< int32 > FindAllIntersectionsImp ( const T_INTERSECTION & Intersection ) const


description: TODO(mlentine): Need to move this elsewhere; probably on CollisionConstraint.

code: const [TAABB](API\Runtime\Chaos\Chaos\TAABB)< T, d > & GetWorldSpaceBoundingBox ( const [TGeometryParticles](API\Runtime\Chaos\Chaos\TGeometryParticles)< T, d > & InParticles, const int32 Index )


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


code: [TBoundingVolumeHierarchy](API\Runtime\Chaos\Chaos\TBoundingVolumeHierarchy) & operator= ( const [TBoundingVolumeHierarchy](API\Runtime\Chaos\Chaos\TBoundingVolumeHierarchy)< OBJECT_ARRAY, LEAF_TYPE, T, d > & Other )


code: [TBoundingVolumeHierarchy](API\Runtime\Chaos\Chaos\TBoundingVolumeHierarchy) & operator= ( [TBoundingVolumeHierarchy](API\Runtime\Chaos\Chaos\TBoundingVolumeHierarchy)< OBJECT_ARRAY, LEAF_TYPE, T, d > && Other )


code: void Reinitialize ( bool bUseVelocity, T Dt )


code: void Reinitialize ( const [TArray](API\Runtime\Core\Containers\TArray)< uint32 > & ActiveIndices, bool bUseVelocity, T Dt )


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


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


code: typedef typename [TBVHLeafTraits](API\Runtime\Chaos\Chaos\TBVHLeafTraits)< LEAF_TYPE, TModels_V< [CComplexBVHLeaf](API\Runtime\Chaos\Chaos\CComplexBVHLeaf), LEAF_TYPE >>::[TPayloadType](API\Runtime\Chaos\Chaos\TBoundingVolumeHierarchy\TPayloadType) TPayloadType


code: void UpdateHierarchy ( const bool AllowMultipleSplitting, const bool bUseVelocity, const T Dt )


code: void UpdateHierarchy ( const [TArray](API\Runtime\Core\Containers\TArray)< uint32 > & ActiveIndices, const bool AllowMultipleSplitting, const bool bUseVelocity, const T Dt )


description: Calls the visitor for every overlapping leaf.

code: template<typename TVisitor> void VisitAllIntersections ( const [FAABB3](API\Runtime\Chaos\Chaos\FAABB3) & LocalBounds, const TVisitor & Visitor ) const


code: TBoundingVolumeHierarchy ( const [TBoundingVolumeHierarchy](API\Runtime\Chaos\Chaos\TBoundingVolumeHierarchy)< OBJECT_ARRAY, LEAF_TYPE, T, d > & Other )


code: TBoundingVolumeHierarchy ( [TBoundingVolumeHierarchy](API\Runtime\Chaos\Chaos\TBoundingVolumeHierarchy)< OBJECT_ARRAY, LEAF_TYPE, T, d > && Other )


code: TBoundingVolumeHierarchy ( const OBJECT_ARRAY & Objects, const int32 MaxLevels, const bool bUseVelocity, const T Dt )


code: TBoundingVolumeHierarchy ( const OBJECT_ARRAY & Objects, const [TArray](API\Runtime\Core\Containers\TArray)< uint32 > & ActiveIndices, const int32 MaxLevels, const bool bUseVelocity, const T Dt )


className: TBoundingVolumeHierarchy

code: template<class OBJECT_ARRAY, class LEAF_TYPE, class T, int d> class TBoundingVolumeHierarchy : public [Chaos::ISpatialAcceleration< int32, T, d >](API\Runtime\Engine\Physics\Experimental\ISpatialAcceleration)


className: TBoundsWrapperHelper

code: template<typename TPayloadType, typename T, bool bComputeBounds> struct TBoundsWrapperHelper


className: TBoundsWrapperHelper< TPayloadType, T, false >::ComputeBounds

code: void ComputeBounds &40; const TArray< TPayloadBoundsElement< TPayloadType, T >> & &41;


className: TBoundsWrapperHelper< TPayloadType, T, false >::GetBounds

code: const TAABB< T, 3 > GetBounds&40;&41; const


code: template<typename TPayloadType, typename T> struct TBoundsWrapperHelper< TPayloadType, T, false >


className: TBoundsWrapperHelper< TPayloadType, T, true >::GetBounds

code: const TAABB< T, 3 > & GetBounds&40;&41; const


className: TBoundsWrapperHelper< TPayloadType, T, true >::ComputeBounds

code: void ComputeBounds &40; const TArray< TPayloadBoundsElement< TPayloadType, T >> & Elems &41;


code: template<typename TPayloadType, typename T> struct TBoundsWrapperHelper< TPayloadType, T, true >


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


className: TBVCellElement

code: template<typename TPayloadType, typename T, int d> struct TBVCellElement

Bounds

type: TAABB< T, d >

EndIdx

type: TVector< int32,...

Payload

type: TPayloadType


className: TBVHLeafTraits

code: template<typename T, bool> struct TBVHLeafTraits


code: typedef typename T::ElementType TPayloadType


className: TBVHLeafTraits< T, false >

code: template<typename T> struct TBVHLeafTraits< T, false >


code: typedef typename T::TPayloadType TPayloadType


className: TBVHLeafTraits< T, true >

code: template<typename T> struct TBVHLeafTraits< T, true >


className: TBVHNode

code: template<typename T, int d> struct TBVHNode

MChildren

type: TArray< int32 >

MMax

type: TVector< T, d >


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


className: TBVPayloadInfo

code: template<typename T, int d> struct TBVPayloadInfo


description: Increase the size of the array without re-initializing the new element.

code: int32 Add()


description: Copy the element to the end of the array.

code: int32 Add ( const [ElementType](API\Runtime\Chaos\Chaos\TCArray\ElementType) & V )


description: Move the element to the end of the array.

code: int32 Add ( [ElementType](API\Runtime\Chaos\Chaos\TCArray\ElementType) && V )


code: const [ElementType](API\Runtime\Chaos\Chaos\TCArray\ElementType) * begin() const


code: int32 Emplace ( [ElementType](API\Runtime\Chaos\Chaos\TCArray\ElementType) && V )


description: Does not reset any elements

code: void Empty()


code: const [ElementType](API\Runtime\Chaos\Chaos\TCArray\ElementType) * end() const


code: const [ElementType](API\Runtime\Chaos\Chaos\TCArray\ElementType) * GetData() const


code: static [TCArray](API\Runtime\Chaos\Chaos\TCArray)< T, N > MakeEmpty()


code: static [TCArray](API\Runtime\Chaos\Chaos\TCArray)< T, N > MakeFull()


className: MaxElements

code: static const int32 MaxElements = N;


code: [ElementType](API\Runtime\Chaos\Chaos\TCArray\ElementType) & operator[] ( const int32 Index )


code: const [ElementType](API\Runtime\Chaos\Chaos\TCArray\ElementType) & operator[] ( const int32 Index ) const


description: Remove the element at the specified index Moves all higher elements down to fill the gap.

code: void RemoveAt ( const int32 Index )


description: Remove the element at the specified index Moves the last element into the gap.

code: void RemoveAtSwap ( const int32 Index )


description: Does not reset any elements

code: void Reset()


className: SentinelValue

code: static constexpr int32 SentinelValue = 0xA1B2C3D4;


description: Does not reset any added or removed elements, it only changes the number-of-elements counter

code: void SetNum ( const int32 InNum )


code: TCArray &40; int32 InNumElements &41;


className: TCArray

description: the element type must have a default constructor

code: template<typename T, int32 N> class TCArray


code: void Clear ( [FDirtyChaosPropertyFlags](API\Runtime\Chaos\Chaos\FDirtyChaosPropertyFlags) & Dirty, [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * Proxy )


code: bool IsDirty ( const [FDirtyChaosPropertyFlags](API\Runtime\Chaos\Chaos\FDirtyChaosPropertyFlags) & Flags ) const


code: template<typename Lambda> void Modify ( bool bInvalidate, [FDirtyChaosPropertyFlags](API\Runtime\Chaos\Chaos\FDirtyChaosPropertyFlags) & Dirty, [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * Proxy, const Lambda & LambdaFunc )


className: PropertyFlag

code: static constexpr [EChaosPropertyFlags](API\Runtime\Chaos\Chaos\Chaos__EChaosPropertyFlags) PropertyFlag = ChaosPropertyToFlag(PropName);


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


code: void SyncRemote ( [FDirtyPropertiesManager](API\Runtime\Chaos\Chaos\FDirtyPropertiesManager) & Manager, int32 DataIdx, const [FDirtyChaosProperties](API\Runtime\Chaos\Chaos\FDirtyChaosProperties) & Remote ) const


code: void Write ( const T & Val, bool bInvalidate, [FDirtyChaosPropertyFlags](API\Runtime\Chaos\Chaos\FDirtyChaosPropertyFlags) & Dirty, [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * Proxy )


description: We don't support this because it could lead to bugs with values not being properly written to remote

code: TChaosProperty ( const [TChaosProperty](API\Runtime\Chaos\Chaos\TChaosProperty)< T, PropName > & Rhs )


className: TChaosProperty

code: template<typename T, [EChaosProperty](API\Runtime\Chaos\Chaos\Chaos__EChaosProperty) PropName> class TChaosProperty


description: Compares byOtherSibling_ only, forTArray::FindByKey()_.

code: bool operator== ( const [TPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\TPBDRigidParticleHandle)< T, 3 > * OtherSibling ) const


description: Getter/functions functions to make calling code less confusing

code: void SetArea ( [Chaos::FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) Area )


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


code: TConnectivityEdge ( [TPBDRigidParticleHandle](API\Runtime\Chaos\Chaos\TPBDRigidParticleHandle)< T, 3 > * InSibling, const [FRealSingle](API\Runtime\ChaosCore\Chaos\FRealSingle) InStrain )


className: TConnectivityEdge

description: TODO: Chaos - Add dimension template param?

code: template<typename T> struct TConnectivityEdge

Sibling

type: TPBDRigidPartic...

Strain

description: This can be both strain or area based on the damage model, but cannot rename it for backward compatibility reasons


code: const [THandle](API\Runtime\Chaos\Chaos\TConstHandleIterator\THandle) * operator->() const


className: TConstHandleIterator::operator bool

code: operator bool() const


code: const [THandle](API\Runtime\Chaos\Chaos\TConstHandleIterator\THandle) & operator*() const


code: [TConstHandleIterator](API\Runtime\Chaos\Chaos\TConstHandleIterator)< TSOA > & operator++()


className: THandle

code: typedef typename TSOA::THandleType THandle


code: TConstHandleIterator ( const [TArray](API\Runtime\Core\Containers\TArray)< [THandle](API\Runtime\Chaos\Chaos\TConstHandleIterator\THandle) * > & InHandles )


className: TConstHandleIterator

code: template<typename TSOA> class TConstHandleIterator

Handles

type: constTArray<T...


code: [TConstHandleIterator](API\Runtime\Chaos\Chaos\TConstHandleIterator)< TSOA > Begin() const


code: [TConstHandleIterator](API\Runtime\Chaos\Chaos\TConstHandleIterator)< TSOA > begin() const


code: [TConstHandleIterator](API\Runtime\Chaos\Chaos\TConstHandleIterator)< TSOA > End() const


code: [TConstHandleIterator](API\Runtime\Chaos\Chaos\TConstHandleIterator)< TSOA > end() const


code: template<typename Lambda> void ParallelFor ( const Lambda & Func ) const


code: template<typename ContextCreatorType, typename Lambda> void ParallelFor ( const ContextCreatorType & ContextCreator, const Lambda & Func ) const


code: TConstHandleView ( const [TArray](API\Runtime\Core\Containers\TArray)< [THandle](API\Runtime\Chaos\Chaos\TConstHandleView\THandle) * > & InHandles )


className: TConstHandleView

code: template<typename TSOA> class TConstHandleView


code: const [TTransientHandle](API\Runtime\Chaos\Chaos\TConstParticleIterator\TTransientHandle) * operator->() const


code: const [TTransientHandle](API\Runtime\Chaos\Chaos\TConstParticleIterator\TTransientHandle) & operator*() const


description: The non-parallel implementation of iteration should not deviate in behavior from the parallel implementation in `ParticleViewParallelForImp()_. They must be kept in sync.

code: [TConstParticleIterator](API\Runtime\Chaos\Chaos\TConstParticleIterator)< TSOA > & operator++()


className: THandleBase

code: typedef typename THandle::THandleBase THandleBase


className: TConstParticleIterator::operator bool

code: operator bool() const


className: TTransientHandle

code: typedef typename THandle::TTransientHandle TTransientHandle


code: TConstParticleIterator ( const [TArray](API\Runtime\Core\Containers\TArray)< [TSOAView](API\Runtime\Chaos\Chaos\TSOAView)< TSOA >> & InSOAViews )


code: TConstParticleIterator ( const [TConstParticleIterator](API\Runtime\Chaos\Chaos\TConstParticleIterator) & Rhs )


code: [TConstParticleIterator](API\Runtime\Chaos\Chaos\TConstParticleIterator)< TSOA > Begin() const


className: TConstParticleIterator

code: template<typename TSOA> class TConstParticleIterator

TransientHandle

type: THandleBase


code: [TConstParticleIterator](API\Runtime\Chaos\Chaos\TConstParticleIterator)< TSOA > begin() const


code: [TConstParticleIterator](API\Runtime\Chaos\Chaos\TConstParticleIterator)< TSOA > End() const


code: [TConstParticleIterator](API\Runtime\Chaos\Chaos\TConstParticleIterator)< TSOA > end() const


code: template<typename Lambda> void ParallelFor ( const Lambda & Func, bool bForceSingleThreaded ) const


code: template<typename ContextCreatorType, typename Lambda> void ParallelFor ( const ContextCreatorType & ContextCreator, const Lambda & Func, bool bForceSingleThreaded ) const


code: typedef typename TSOA::THandleType THandle


code: TConstParticleView ( [TArray](API\Runtime\Core\Containers\TArray)< [TSOAView](API\Runtime\Chaos\Chaos\TSOAView)< TSOA >> && InSOAViews )


code: TConstParticleView ( [TSOAView](API\Runtime\Chaos\Chaos\TSOAView)< TSOA > && InSOAView )


className: TConstParticleView

code: template<typename TSOA> class TConstParticleView

SOAViews

type: TArray<TSOAVie...


code: [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\TConstraintHandleAllocator\FConstraintContainerHandle) * AllocHandle ( [FConstraintContainer](API\Runtime\Chaos\Chaos\TConstraintHandleAllocator\FConstraintContainer) * ConstraintContainer, int32 ConstraintIndex )


className: FConstraintContainerHandle

code: typedef typename FConstraintContainer::FConstraintContainerHandle FConstraintContainerHandle


code: void FreeHandle ( [FConstraintContainerHandle](API\Runtime\Chaos\Chaos\TConstraintHandleAllocator\FConstraintContainerHandle) * Handle )


className: FOffsetIndex

code: typedef T_OFFSETINDEX FOffsetIndex


description: Get the vertex index (in the outer convex container) of one of the vertices making up the corners of the specified face.

code: int32 GetPlaneVertex ( int32 PlaneIndex, int32 PlaneVertexIndex ) const


description: Get the plane index (in the outer convex container) of one of the planes that uses the specified vertex.

code: int32 GetVertexPlane ( int32 VertexIndex, int32 VertexPlaneIndex ) const


description: The number of vertices that make up the corners of the specified face.

code: int32 NumPlaneVertices ( int32 PlaneIndex ) const


description: The number of planes that use the specified vertex.

code: int32 NumVertexPlanes ( int32 VertexIndex ) const


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


code: void SetPlaneVertices ( const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & InPlaneVertices, int32 NumVerts )


description: Return true if we can support this convex, based on number of features and maximum index size.

code: static bool CanMake ( const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & InPlaneVertices, int32 InNumVertices )


className: TConstraintHandleAllocator

description: An allocator for constraint handles.

code: template<class T_CONTAINER> class TConstraintHandleAllocator


className: TConvexFlattenedArrayStructureData

description: T_OFFSETINDEX: the type used to index the flattened array of indices. Must be able to contain Max(NumPlanes*AverageVertsPerPlane)

code: template<typename T_INDEX, typename T_OFFSETINDEX> class TConvexFlattenedArrayStructureData : public [Chaos::Legacy::FConvexFlattenedArrayStructureData](API\Runtime\Chaos\Chaos\FConvexFlattenedArrayStructureDa-_2)

PlaneVertices

type: TArray<FIndex...

description: A flattened ragged array. For each plane: the set of vertex indices that form the corners of the face in counter-clockwise order.

PlaneVerticesOffsetCount

type: TArray< TPair< ...

description: Array of [offset, count] for each plane that gives the set of indices in the PlaneVertices flattened array.

VertexPlanes

description: A flattened ragged array. For each vertex: the set of plane indices that use the vertex.

VertexPlanesOffsetCount

description: Array of [offset, count] for each vertex that gives the set of indices in the VertexPlanes flattened array.


className: FConvexHalfEdgeStructureData

code: typedef [TConvexHalfEdgeStructureData](API\Runtime\Chaos\Chaos\TConvexHalfEdgeStructureData)< T_INDEX > FConvexHalfEdgeStructureData


className: FHalfEdgeData

description: Every plane is bounded by a sequence of edges, and every edge should be shared by two planes. The edges that bound a plane are stored as a sequence of half-edges. Each half-edge references the starting vertex of the edge, the half-edge pointing in the opposite direction (belonging to the plane that shares the edge), and the next half-edge on the same plane.

code: struct FHalfEdgeData

PlaneIndex

type: FIndex


className: FIndexTraits

code: typedef [TConvexStructureIndexTraits](API\Runtime\Chaos\Chaos\TConvexStructureIndexTraits)< T_INDEX > FIndexTraits


description: Fill an array with plane indices for the specified vertex. Return the number of planes found.

code: int32 FindVertexPlanes ( int32 VertexIndex, int32 * PlaneIndices, int32 MaxVertexPlanes ) const


className: FPlaneData

description: A plane of a convex hull. Each plane has an array of half edges, stored as an index into the edge list and a count.

code: struct FPlaneData


className: FVertexData

description: A vertex of a convex hull. We just store one edge that uses the vertex - the others can be found via the half-edge links.

code: struct FVertexData


className: FVertexPlanes

description: We cache 3 planes per vertex since this is the most common request and a major bottleneck in GJK (SupportCoreScaled -> GetMarginAdjustedVertexScaled -> FindVertexPlanes

code: struct FVertexPlanes


description: Get a plane for the specified Edge (NOTE: edge index, not half-edge index) EdgeIndex must be in range [0,NumEdges()) EdgePlaneIndex must be 0 or 1 return value is in range [0,NumPlanes())

code: int32 GetEdgePlane ( int32 EdgeIndex, int32 EdgePlaneIndex ) const


description: Get a vertex in the specified Edge (NOTE: edge index, not half-edge index) EdgeIndex must be in range [0,NumEdges()) EdgeVertexIndex must be 0 or 1 return value is in range [0,NumVertices())

code: int32 GetEdgeVertex ( int32 EdgeIndex, int32 EdgeVertexIndex ) const


code: [FHalfEdgeData](API\Runtime\Chaos\Chaos\TConvexHalfEdgeStructureData\FHalfEdgeData) & GetHalfEdge ( int32 HalfEdgeIndex )


code: const [FHalfEdgeData](API\Runtime\Chaos\Chaos\TConvexHalfEdgeStructureData\FHalfEdgeData) & GetHalfEdge ( int32 HalfEdgeIndex ) const


description: HalfEdgeIndex must be in range [0,NumHalfEdges()) return value is in range [0,NumPlanes())

code: int32 GetHalfEdgePlane ( int32 HalfEdgeIndex ) const


description: HalfEdgeIndex must be in range [0,NumHalfEdges()) return value is in range [0,NumVertices())

code: int32 GetHalfEdgeVertex ( int32 HalfEdgeIndex ) const


description: Get the next half edge on the same plane HalfEdgeIndex must be in range [0,NumHalfEdges()) return value is in range [0,NumHalfEdges())

code: int32 GetNextHalfEdge ( int32 HalfEdgeIndex ) const


code: [FPlaneData](API\Runtime\Chaos\Chaos\TConvexHalfEdgeStructureData\FPlaneData) & GetPlane ( int32 PlaneIndex )


code: const [FPlaneData](API\Runtime\Chaos\Chaos\TConvexHalfEdgeStructureData\FPlaneData) & GetPlane ( int32 PlaneIndex ) const


description: The edge index of one of the bounding edges of a plane PlaneIndex must be in range [0,NumPlanes()) PlaneEdgeIndex must be in range [0, NumPlaneHalfEdges(PlaneIndex)) return value is in range [0,NumHalfEdges())

code: int32 GetPlaneHalfEdge ( int32 PlaneIndex, int32 PlaneEdgeIndex ) const


description: Get the index of one of the vertices bounding the specified plane PlaneIndex must be in range [0,NumPlanes()) PlaneVertexIndex must be in [0, NumPlaneVertices(PlaneIndex)) return value is in [0,NumVertices())

code: int32 GetPlaneVertex ( int32 PlaneIndex, int32 PlaneVertexIndex ) const


description: Get the previous half edge on the same plane HalfEdgeIndex must be in range [0,NumHalfEdges()) return value is in range [0,NumHalfEdges())

code: int32 GetPrevHalfEdge ( int32 HalfEdgeIndex ) const


description: HalfEdgeIndex must be in range [0,NumHalfEdges()) return value is in range [0,NumHalfEdges())

code: int32 GetTwinHalfEdge ( int32 HalfEdgeIndex ) const


code: [FVertexData](API\Runtime\Chaos\Chaos\TConvexHalfEdgeStructureData\FVertexData) & GetVertex ( int32 VertexIndex )


code: const [FVertexData](API\Runtime\Chaos\Chaos\TConvexHalfEdgeStructureData\FVertexData) & GetVertex ( int32 VertexIndex ) const


description: VertexIndex must be in range [0,NumVertices()) return value is in range [0,NumHalfEdges())

code: int32 GetVertexFirstHalfEdge ( int32 VertexIndex ) const


code: int32 GetVertexPlanes3 ( int32 VertexIndex, int32 & PlaneIndex0, int32 & PlaneIndex1, int32 & PlaneIndex2 ) const


className: InvalidIndex

code: static const [FIndex](API\Runtime\Chaos\Chaos\TConvexHalfEdgeStructureData\FIndex) InvalidIndex = FIndexTraits::InvalidIndex;


description: Initialize the structure data from the array of vertex indices per plane (in CW or CCW order - it is retained in structure) If this fails for some reason, the structure data will be invalid (checkIsValid())

code: static [FConvexHalfEdgeStructureData](API\Runtime\Chaos\Chaos\TConvexHalfEdgeStructureData\FConvexHalfEdgeStructureData) MakePlaneVertices ( const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & InPlaneVertices, int32 InNumVertices )


description: Number of unique half-edges (no half edge's twin is in also the list). Should be NumHalfEdges/2.

code: int32 NumEdges() const


className: MaxIndex

code: static const int32 MaxIndex = (int32)FIndexTraits::MaxIndex;


description: The number of edges bounding the specified plane.

code: int32 NumPlaneHalfEdges ( int32 PlaneIndex ) const


description: The number of vertices that bound the specified plane (same as number of half edges) PlaneIndex must be in range [0, NumPlaneHalfEdges(PlaneIndex))

code: int32 NumPlaneVertices ( int32 PlaneIndex ) const


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


description: Initialize the structure data from the set of vertices associated with each plane. The vertex indices are assumed to be in CCW order (or CW order - doesn't matter here as long as it is sequential).

code: bool SetPlaneVertices ( const [TArray](API\Runtime\Core\Containers\TArray)< [TArray](API\Runtime\Core\Containers\TArray)< int32 >> & InPlaneVertices, int32 InNumVertices )


description: Iterate over the edges associated with a plane. These edges form the boundary of the plane. Visitor should return false to halt iteration. FVisitorType should be a function with signature: bool(int32 HalfEdgeIndex, int32 NextHalfEdgeIndex) that return false to stop the visit loop

code: template<typename FVisitorType> void VisitPlaneEdges ( int32 PlaneIndex, const FVisitorType & Visitor ) const


description: Iterate over the half-edges associated with a vertex (leading out from the vertex, so all half edges have the vertex as the root). Visitor should return false to halt iteration. FVisitorType should be a function with signature: bool(int32 HalfEdgeIndex) that returns false to stop the visit loop.

code: template<typename FVisitorType> void VisitVertexHalfEdges ( int32 VertexIndex, const FVisitorType & Visitor ) const


className: TConvexHalfEdgeStructureData

description: Convex half-edge structure data. Uses indices rather than pointers. Supports different index sizes.

code: template<typename T_INDEX> class TConvexHalfEdgeStructureData


code: static const [FIndex](API\Runtime\Chaos\Chaos\TConvexStructureIndexTraits\FIndex) InvalidIndex = TNumericLimits<FIndex>::Lowest();


code: static const [FIndex](API\Runtime\Chaos\Chaos\TConvexStructureIndexTraits\FIndex) MaxIndex = TNumericLimits<FIndex>::Max();


code: static InvalidIndex = TNumericLimits<FIndex>::Max();


code: static MaxIndex = TNumericLimits<FIndex>::Max() - 1;


className: TConvexStructureIndexTraits< uint8 >

description: Uint8 uses 255 as InvalidIndex, and therefore supports elements with indices 0...254

code: template<> struct TConvexStructureIndexTraits< uint8 >


description: Return C = A + B

code: template<int32 T_EA, int32 T_EB> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Add ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B )


description: Add uninitialized rows to the matrix. This will not invalidate data in any previously added rows, so it can be used to build NxM matrices where M is known, but N is calculated later. /return the index of the first new row.

code: int32 AddRows ( const int32 InNumRows )


description: Return C = A + B, where A and B are symetric.

code: template<int32 T_EA, int32 T_EB> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Add_Symmetric ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B )


description: Return a writable reference to the element at the specified row and column.

code: [FReal](API\Runtime\ChaosCore\Chaos\FReal) & At ( const int32 RowIndex, const int32 ColumnIndex )


className: TConvexStructureIndexTraits

description: TConvexStructureIndexTraits< uint8 >

code: template<typename T_INDEX> struct TConvexStructureIndexTraits


description: Return a read-only reference to the element at the specified row and column.

code: const [FReal](API\Runtime\ChaosCore\Chaos\FReal) & At ( const int32 RowIndex, const int32 ColumnIndex ) const


description: Return C = A / V, where A is an MxN matrix, and V a real number.

code: template<int32 T_EA> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Divide ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) V )


description: Set the dimensions and initial values of the matrix.

code: void Init ( const int32 InNRows, const int32 InNCols, [FReal](API\Runtime\ChaosCore\Chaos\FReal) V )


description: Create a copy of the 3x1 columns vector.

code: static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Make ( const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & InM )


description: Create a copy of the 3x3 matrix.

code: static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Make ( const [FMatrix33](API\Runtime\ChaosCore\Chaos\FMatrix33) & InM )


description: Create a matrix with the specified dimensions, and initialize all elements with "V".

code: static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Make ( const int32 InNumRows, const int32 InNumCols, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) V )


description: Factory methods Create a matrix with the specified dimensions, but all elements are uninitialized.

code: static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Make ( const int32 InNumRows, const int32 InNumCols )


description: Create a matrix with the specified elements supplied as an array in row-major order (i.e., the first N elements are for Row 0, the next N for Row 1, etc., where N is the number of columns).

code: static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Make ( const int32 InNumRows, const int32 InNumCols, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) * V, const int32 VLen )


description: Return C = At x B. If A and B are column vectors (Nx1 matrices), this is a vector dot product.

code: template<int32 T_EA, int32 T_EB> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > DotProduct ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B )


description: Create a matrix with all elemets set to zero, except the diagonal elements.

code: static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > MakeDiagonal ( const int32 InNumRows, const int32 InNumCols, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) D )


description: Create an identity matrix.

code: static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > MakeIdentity ( const int32 InDim )


className: MaxElements

code: static const int32 MaxElements = T_MAXELEMENTS;


description: Return C = A x V, where A is an MxN matrix, and V a real number.

code: template<int32 T_EA> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Multiply ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) V )


code: template<int32 T_EA> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Multiply ( const [FReal](API\Runtime\ChaosCore\Chaos\FReal) V, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A )


description: Return C = A x B, the product of A and B where each element of C is Cij = DotProduct(A.GetRow(i), B.GetColumns(j)). /see MultiplyAtB, MultiplyABt, MultipltAtBt.

code: template<int32 T_EA, int32 T_EB> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > MultiplyAB ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B )


description: Return C = A x B, where A is an Nx6 matrix, and B is a 6x6 mass matrix (Mass in upper left 3x3 diagonals, Inertia in lower right 3x3). C = |A0 A1| * |M 0| = |A0.M A1.I| |0 I|

code: template<int32 T_EA> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > MultiplyAB ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [FMassMatrix](API\Runtime\Chaos\Chaos\FMassMatrix) & B )


description: Return C = A x B, where B is an 6xN matrix, and A is a 6x6 mass matrix (Mass in upper left 3x3 diagonals, Inertia in lower right 3x3). C = |M 0| * |B0| = |M.B0| |0 I| |B1| |I.B1|

code: template<int32 T_EB> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > MultiplyAB ( const [FMassMatrix](API\Runtime\Chaos\Chaos\FMassMatrix) & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B )


description: Return C = A x Transpose(B). /see MultiplyAB, MultiplyAtB, MultipltAtBt.

code: template<int32 T_EA, int32 T_EB> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > MultiplyABt ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B )


description: Return C = A x Transpose(B), where B is an Nx6 matrix, and A is a 6x6 mass matrix (Mass in upper left 3x3 diagonals, Inertia in lower right 3x3). C = |M 0| * |B0 B1|(T) = |M.B0(T)| |0 I| |I.B1(T)|

code: template<int32 T_EB> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > MultiplyABt ( const [FMassMatrix](API\Runtime\Chaos\Chaos\FMassMatrix) & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B )


description: Return C = A x B, where the results is known to be symmetric. /see MultiplyAtB.

code: template<int32 T_EA, int32 T_EB> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > MultiplyAB_Symmetric ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B )


description: Return C = Transpose(A) x Transpose(B). /see MultiplyAB, MultiplyAtB, MultipltABt.

code: template<int32 T_EA, int32 T_EB> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > MultiplyAtBt ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B )


description: Return C = Transpose(A) x B. /see MultiplyAB, MultiplyABt, MultipltAtBt.

code: template<int32 T_EA, int32 T_EB> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > MultiplyAtB ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B )


description: Copy a matrix and set each element to its negative.

code: template<int32 T_EA> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Negate ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A )


description: Return C = A + B x C, where the A and (B x C) are known to be symmetric. /see MultiplyAtB, Add_Symmetric.

code: template<int32 T_EA, int32 T_EB, int32 T_EC> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > MultiplyBCAddA_Symmetric ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EC > & C )


description: The number of columns in the matrix.

code: int32 NumColumns() const


description: The number of elements in the matrix.

code: int32 NumElements() const


description: The number of rows in the matrix.

code: int32 NumRows() const


code: [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > & operator= ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > & A )


description: Set all elements to 'V'.

code: void Set ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) V )


description: Set the element

code: void SetAt ( const int32 RowIndex, const int32 ColumnIndex, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) V )


description: Set the block starting at ("RowOffset", "ColumnOffset") from the specified matrix "V"

code: template<int32 T_EA> void SetBlockAt ( const int32 RowOffset, const int32 ColumnOffset, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & V )


description: Set the 3x3 block starting at ("RowOffset", "ColumnOffset") from the specified 3x3 matrix "V" (note: assumes the input UE matrix is column-major order)

code: void SetBlockAt ( const int32 RowOffset, const int32 ColumnOffset, const [FMatrix33](API\Runtime\ChaosCore\Chaos\FMatrix33) & V )


description: Set the specified 3x3 block to a diagonal matrix with the specified diagonal and off-diagonal values.

code: void SetBlockAtDiagonal33 ( const int32 RowOffset, const int32 ColumnOffset, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) VDiag, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) VOffDiag )


code: void SetColumnAt ( const int32 RowIndex, const int32 ColumnIndex, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & V )


description: Starting from element ("RowIndex", "ColumnIndex"), set the next "NumV" elements in the column to the values in "V".

code: void SetColumnAt ( const int32 RowIndex, const int32 ColumnIndex, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) * V, const int32 NumV )


description: Set the diagonal elements to 'V'. Does not set off-diagonal elements. /see MakeDiagonal

code: void SetDiagonal ( [FReal](API\Runtime\ChaosCore\Chaos\FReal) V )


description: Set the "Num" diagonal elements starting from ("Start", "Start") to "V". Does not set off-diagonal elements.

code: void SetDiagonalAt ( int32 Start, int32 Num, [FReal](API\Runtime\ChaosCore\Chaos\FReal) V )


description: Set the dimensions of the matrix, but do not initialize any values. This will invalidate any existing data.

code: void SetDimensions ( const int32 InNumRows, const int32 InNumColumns )


description: Starting from element ("RowIndex", "ColumnIndex"), set the next "NumV" elements in the row to the values in "V".

code: void SetRowAt ( const int32 RowIndex, const int32 ColumnIndex, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) * V, const int32 NumV )


code: void SetRowAt ( const int32 RowIndex, const int32 ColumnIndex, const [FVec3](API\Runtime\ChaosCore\Chaos\FVec3) & V )


code: void SetRowAt ( const int32 RowIndex, const int32 ColumnIndex, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) V0, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) V1, const [FReal](API\Runtime\ChaosCore\Chaos\FReal) V2 )


description: Return C = A - B

code: template<int32 T_EA, int32 T_EB> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Subtract ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A, const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EB > & B )


description: Math operations Return the transpose of 'A'.

code: template<int32 T_EA> static [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > Transpose ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< T_EA > & A )


code: TDenseMatrix ( const [TDenseMatrix](API\Runtime\Chaos\Chaos\TDenseMatrix)< MaxElements > & A )


code: TDenseMatrix ( const int32 InNRows, const int32 InNCols )


code: TDenseMatrix &40; const int32 InNRows, const int32 InNCols, const FReal V &41;


code: const T & GetElement ( int32 Idx ) const


code: TDenseMatrix &40; const int32 InNRows, const int32 InNCols, const FReal &42; V, const int32 N &41;


className: TDenseMatrix

description: Elements are stored in row-major order (i.e., elements in a row are adjacent in memory). Note that FMatrix stores elements in column-major order so that we can access the columns quickly which is handy when you have rotation matrices and want the spatial axes. We don't care about that so we use the more conventional row-major indexing and matching storage.

code: template<int32 T_MAXELEMENTS> class TDenseMatrix


className: TDirtyElementPool

code: template<typename T> class TDirtyElementPool


code: bool IsDirty ( const FlagsType CheckBits ) const


code: bool IsDirty ( const int32 CheckBits ) const


code: void MarkClean ( const FlagsType CleanBits )


code: void MarkDirty ( const FlagsType DirtyBits )


className: TDirtyFlags

code: template<typename FlagsType> class TDirtyFlags


code: const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Acceleration ( const int32 Index ) const


code: [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & Acceleration ( const int32 Index )


code: const [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< T > & GetM() const


code: const [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > > & GetV() const


code: const T InvM ( const int32 Index ) const


code: const T M ( const int32 Index ) const


code: const [TArrayCollectionArray](API\Runtime\Engine\Physics\Experimental\TArrayCollectionArray)< T > & GetInvM() const


code: const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & V ( const int32 Index ) const


code: [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & V ( const int32 Index )


code: TDynamicParticles ( [TDynamicParticles](API\Runtime\Chaos\Chaos\TDynamicParticles)< T, d > && Other )


code: TDynamicParticles ( const [TDynamicParticles](API\Runtime\Chaos\Chaos\TDynamicParticles)< T, d > & Other )


className: TDynamicParticles

code: template<class T, int d> class TDynamicParticles : public [Chaos::TParticles< T, d >](API\Runtime\Chaos\Chaos\TParticles)


code: T DistanceToPlane ( const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > & X ) const


code: bool Initialize ( const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > * VerticesA, const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > * VerticesB, int32 InIdx0, int32 InIdx1, int32 InIdx2, const [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 3 > & InAdjFaces, const [TVector](API\Runtime\Chaos\Chaos\TVector)< int32, 3 > & InAdjEdges )


code: bool IsOriginProjectedInside ( const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > * VertsABuffer, const [TVec3](API\Runtime\ChaosCore\Chaos\TVec3)< T > * VertsBBuffer, const T Epsilon ) const


code: bool operator> ( const [TEPAEntry](API\Runtime\Chaos\Chaos\TEPAEntry)< T > & Other ) const


code: static constexpr T SelectEpsilon ( float FloatEpsilon, double DoubleEpsilon )


code: void SwapWinding ( [TEPAEntry](API\Runtime\Chaos\Chaos\TEPAEntry) * Entries )


className: TEPAEntry

code: template<typename T> struct TEPAEntry

Distance

type: T

PlaneNormal

type: TVec3< T >


className: TEPAWorkingArray

description: Array type used in EPA to avoid heap allocation for small convex shapes

code: typedef [TArray](API\Runtime\Core\Containers\TArray)< T, TInlineAllocator< 32 >> TEPAWorkingArray


className: TGeometryClothParticles

code: typedef [TGeometryParticlesImp](API\Runtime\Chaos\Chaos\TGeometryParticlesImp)< T, d, [EGeometryParticlesSimType::Other](API\Runtime\Chaos\Chaos\Chaos__EGeometryParticlesSimType) > TGeometryClothParticles


className: AlwaysSerializable

code: static constexpr bool AlwaysSerializable = true;


description: Holding on the deprecation for now as inter dependencies require the use of TPBDGeometryCollectionParticle<>

code: const [TKinematicGeometryParticle](API\Runtime\Chaos\Chaos\TKinematicGeometryParticle)< T, d > * CastToKinematicParticle() const


code: [TKinematicGeometryParticle](API\Runtime\Chaos\Chaos\TKinematicGeometryParticle)< T, d > * CastToKinematicParticle()


code: const [TPBDRigidParticle](API\Runtime\Chaos\Chaos\TPBDRigidParticle)< T, d > * CastToRigidParticle() const


code: [TPBDRigidParticle](API\Runtime\Chaos\Chaos\TPBDRigidParticle)< T, d > * CastToRigidParticle()


code: const [FDirtyChaosPropertyFlags](API\Runtime\Chaos\Chaos\FDirtyChaosPropertyFlags) & DirtyFlags() const


code: static [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [TGeometryParticle](API\Runtime\Chaos\Chaos\TGeometryParticle)< T, d > > CreateParticle ( const [FGeometryParticleParameters](API\Runtime\Chaos\Chaos\FGeometryParticleParameters) & Params )


className: FHandle

code: typedef [TGeometryParticleHandle](API\Runtime\Chaos\Chaos\TGeometryParticleHandle)< T, d > FHandle


code: void ForceDirty ( [EChaosPropertyFlags](API\Runtime\Chaos\Chaos\Chaos__EChaosPropertyFlags) CheckBits )


code: [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) > Geometry() const


description: Ryan:FGeometryCollectionPhysicsProxyneeds access toGeometrySharedLowLevel(), as it needs access for the same reason as ParticleData. For some reason the friend declaration isn't working. Exposing this function until this can be straightened out. friend classFGeometryCollectionPhysicsProxy; This is only for use by ParticleData. This should be called only in one place, when the geometry is being copied from GT to PT.

code: const [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< const [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject), ESPMode::ThreadSafe > & GeometrySharedLowLevel() const


code: [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * GetProxy() const


code: [TGeometryParticleHandle](API\Runtime\Chaos\Chaos\TGeometryParticleHandle)< T, d > * Handle() const


code: bool IsDirty ( const [EChaosPropertyFlags](API\Runtime\Chaos\Chaos\Chaos__EChaosPropertyFlags) CheckBits ) const


code: virtual bool IsParticleValid() const


code: void MarkDirty ( const [EChaosPropertyFlags](API\Runtime\Chaos\Chaos\Chaos__EChaosPropertyFlags) DirtyBits, bool bInvalidate )


code: template<> void MarkDirty ( const [EChaosPropertyFlags](API\Runtime\Chaos\Chaos\Chaos__EChaosPropertyFlags) DirtyBits, bool bInvalidate )


code: void MergeGeometry ( [TArray](API\Runtime\Core\Containers\TArray)< [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) >> && Objects )


description: Overwite the last N shapes with the data from InShapes. This is a highly dubious operation provided as a utility for use inFPhysInterface_Chaos::AddGeometry. Ideally we would remove this

code: void MergeShapeInstances ( [FShapeInstanceProxyArray](API\Runtime\Chaos\Chaos\FShapeInstanceProxyArray) && InShapes )


code: template<typename Lambda> void ModifyGeometry ( const Lambda & Func )


code: void MergeShapesArray ( [FShapesArray](API\Runtime\Chaos\Chaos\FShapesArray) && OtherShapesArray )


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


code: const [FParticleID](API\Runtime\Chaos\Chaos\FParticleID) & ParticleID() const


description: Update the BVH in the geometry hierarchy if we have new geometry This exists so that we don't repeatedly rebuild the BVH when welding, for example, although ideally we would remove this and change the way welding works

code: void PrepareBVH()


code: const [TRotation](API\Runtime\Chaos\Chaos\TRotation)< T, d > & R() const


code: void RemoveShape ( [FPerShapeData](API\Runtime\Chaos\Chaos\FPerShapeData) * InShape, bool bWakeTouching )


code: static [TGeometryParticle](API\Runtime\Chaos\Chaos\TGeometryParticle)< T, d > * SerializationFactory ( [FChaosArchive](API\Runtime\Chaos\Chaos\FChaosArchive) & Ar, [TGeometryParticle](API\Runtime\Chaos\Chaos\TGeometryParticle)< T, d > * Serializable )


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


code: void SetEnabledDuringResim ( bool bEnabledDuringResim )


description: Todo: geometry should not be owned by particle

code: void SetGeometry ( [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) > && UniqueGeometry )


code: void SetGeometry ( [TSerializablePtr](API\Runtime\Chaos\Chaos\TSerializablePtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) > RawGeometry )


description: TODO: Right now this method exists so we can do things like FPhysTestSerializer::CreateChaosData. We should replace this with a method for supporting SetGeometry(RawGeometry).

code: void SetGeometry ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject), ESPMode::ThreadSafe > SharedGeometry )


code: void SetIgnoreAnalyticCollisions ( bool bIgnoreAnalyticCollisions )


code: void SetIgnoreAnalyticCollisionsImp ( [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject) * Implicit, bool bIgnoreAnalyticCollisions )


code: void SetNonFrequentData ( const [FParticleNonFrequentData](API\Runtime\Chaos\Chaos\FParticleNonFrequentData) & InData )


code: void SetParticleID ( const [FParticleID](API\Runtime\Chaos\Chaos\FParticleID) & ParticleID, bool bInvalidate )


code: void SetProxy ( [IPhysicsProxyBase](API\Runtime\Chaos\Chaos\Framework\IPhysicsProxyBase) * InProxy )


code: void SetR ( const [TRotation](API\Runtime\Chaos\Chaos\TRotation)< T, d > & InR, bool bInvalidate )


code: void SetResimType ( [EResimType](API\Runtime\Chaos\Chaos\Chaos__EResimType) ResimType )


code: void SetShapeCollisionTraceType ( int32 InShapeIndex, [EChaosCollisionTraceFlag](API\Runtime\Chaos\Chaos\Chaos__EChaosCollisionTraceFlag) TraceType )


description: Note: this must be called after setting geometry. This API seems bad. Should probably be part of setting geometry.

code: void SetShapeInstances ( [FShapeInstanceProxyArray](API\Runtime\Chaos\Chaos\FShapeInstanceProxyArray) && InShapes )


code: void SetShapeQueryCollisionEnabled ( int32 InShapeIndex, bool bInEnabled )


code: void SetShapesArray ( [FShapesArray](API\Runtime\Chaos\Chaos\FShapesArray) && InShapesArray )


code: void SetShapeSimCollisionEnabled ( int32 InShapeIndex, bool bInEnabled )


code: void SetShapeSimData ( int32 InShapeIndex, const [FCollisionFilterData](API\Runtime\Chaos\Chaos\FCollisionFilterData) & SimData )


code: void SetSpatialIdx ( [FSpatialAccelerationIdx](API\Runtime\Chaos\Chaos\FSpatialAccelerationIdx) Idx )


code: void SetUniqueIdx ( const [FUniqueIdx](API\Runtime\Chaos\Chaos\FUniqueIdx) UniqueIdx, bool bInvalidate )


code: void SetUserData ( void * InUserData )


code: void SetX ( const [TVector](API\Runtime\Chaos\Chaos\TVector)< T, d > & InX, bool bInvalidate )


code: void SetXR ( const [FParticlePositionRotation](API\Runtime\Chaos\Chaos\FParticlePositionRotation) & InXR, bool bInvalidate )


code: const [FShapeInstanceProxyArray](API\Runtime\Chaos\Chaos\FShapeInstanceProxyArray) & ShapeInstances() const


code: const [FShapesArray](API\Runtime\Chaos\Chaos\FShapesArray) & ShapesArray() const


code: [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< const [FImplicitObject](API\Runtime\Chaos\Chaos\FImplicitObject), ESPMode::ThreadSafe > SharedGeometryLowLevel() const