UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::TGeometryParticle< T, d > Class Template Reference

#include <ParticleHandle.h>

+ Inheritance diagram for Chaos::TGeometryParticle< T, d >:

Public Types

typedef TGeometryParticleHandle< T, d > FHandle
 

Public Member Functions

virtual ~TGeometryParticle ()
 
 TGeometryParticle (const TGeometryParticle &)=delete
 
TGeometryParticleoperator= (const TGeometryParticle &)=delete
 
virtual void Serialize (FChaosArchive &Ar)
 
virtual bool IsParticleValid () const
 
const TVector< T, d > & X () const
 
const TVector< T, d > & GetX () const
 
void SetX (const TVector< T, d > &InX, bool bInvalidate=true)
 
FUniqueIdx UniqueIdx () const
 
void SetUniqueIdx (const FUniqueIdx UniqueIdx, bool bInvalidate=true)
 
const FParticleIDParticleID () const
 
void SetParticleID (const FParticleID &ParticleID, bool bInvalidate=true)
 
const TRotation< T, d > R () const
 
const TRotation< T, d > GetR () const
 
void SetR (const TRotation< T, d > &InR, bool bInvalidate=true)
 
const FParticlePositionRotationXR () const
 
void SetXR (const FParticlePositionRotation &InXR, bool bInvalidate=true)
 
void SetGeometry (Chaos::FImplicitObjectPtr ImplicitObjectPtr)
 
CHAOS_API void MergeGeometry (TArray< Chaos::FImplicitObjectPtr > &&Objects)
 
const FImplicitObjectRef GetGeometry () const
 
void LockGeometry ()
 
void SetGeometry (TUniquePtr< FImplicitObject > &&UniqueGeometry)
 
void SetGeometry (TSharedPtr< FImplicitObject, ESPMode::ThreadSafe > SharedGeometry)
 
void SetGeometry (TSerializablePtr< FImplicitObject > RawGeometry)
 
void MergeGeometry (TArray< TUniquePtr< FImplicitObject > > &&Objects)
 
TSharedPtr< const FImplicitObject, ESPMode::ThreadSafeSharedGeometryLowLevel () const
 
TSerializablePtr< FImplicitObjectGeometry () const
 
CHAOS_API void RemoveShape (FPerShapeData *InShape, bool bWakeTouching)
 
CHAOS_API void RemoveShapesAtSortedIndices (const TArrayView< const int32 > &InIndices)
 
voidUserData () const
 
void SetUserData (void *InUserData)
 
void UpdateShapeBounds ()
 
void UpdateShapeBounds (const FRigidTransform3 &Transform)
 
void SetShapeSimCollisionEnabled (int32 InShapeIndex, bool bInEnabled)
 
void SetShapeQueryCollisionEnabled (int32 InShapeIndex, bool bInEnabled)
 
void SetShapeCollisionTraceType (int32 InShapeIndex, EChaosCollisionTraceFlag TraceType)
 
void SetShapeSimData (int32 InShapeIndex, const FCollisionFilterData &SimData)
 
const FString & GetDebugName () const
 
void MergeShapesArray (FShapesArray &&InShapesArray)
 
const FShapesArrayShapesArray () const
 
const FShapeInstanceProxyArrayShapeInstances () const
 
void SetShapeInstances (FShapeInstanceProxyArray &&InShapes)
 
void MergeShapeInstances (FShapeInstanceProxyArray &&InShapes)
 
void SetIgnoreAnalyticCollisionsImp (FImplicitObject *Implicit, bool bIgnoreAnalyticCollisions)
 
CHAOS_API void SetIgnoreAnalyticCollisions (bool bIgnoreAnalyticCollisions)
 
EObjectStateType ObjectState () const
 
EParticleType ObjectType () const
 
const TKinematicGeometryParticle< T, d > * CastToKinematicParticle () const
 
TKinematicGeometryParticle< T, d > * CastToKinematicParticle ()
 
const TPBDRigidParticle< T, d > * CastToRigidParticle () const
 
TPBDRigidParticle< T, d > * CastToRigidParticle ()
 
FSpatialAccelerationIdx SpatialIdx () const
 
void SetSpatialIdx (FSpatialAccelerationIdx Idx)
 
void SetResimType (EResimType ResimType)
 
EResimType ResimType () const
 
void SetEnabledDuringResim (bool bEnabledDuringResim)
 
bool EnabledDuringResim () const
 
void SetNonFrequentData (const FParticleNonFrequentData &InData)
 
bool IsDirty () const
 
bool IsClean () const
 
bool IsDirty (const EChaosPropertyFlags CheckBits) const
 
void ForceDirty (EChaosPropertyFlags CheckBits)
 
const FDirtyChaosPropertyFlagsDirtyFlags () const
 
void ClearDirtyFlags ()
 
TGeometryParticleHandle< T, d > * Handle () const
 
void SyncRemoteData (FDirtyPropertiesManager &Manager, int32 DataIdx, FDirtyChaosProperties &RemoteData, const TArray< int32 > &ShapeDataIndices, FShapeDirtyData *ShapesRemoteData) const
 
void PrepareBVH ()
 
class IPhysicsProxyBaseGetProxy () const
 
void SetProxy (IPhysicsProxyBase *InProxy)
 
const TSharedPtr< const FImplicitObject, ESPMode::ThreadSafe > & GeometrySharedLowLevel () const
 

Static Public Member Functions

static TUniquePtr< TGeometryParticle< T, d > > CreateParticle (const FGeometryParticleParameters &Params=FGeometryParticleParameters())
 
static TGeometryParticle< T, d > * SerializationFactory (FChaosArchive &Ar, TGeometryParticle< T, d > *Serializable)
 

Static Public Attributes

static constexpr bool AlwaysSerializable = true
 

Protected Types

enum class  EGeometryAccess { Direct , ShallowCopy , DeepCopy }
 

Protected Member Functions

 TGeometryParticle (const FGeometryParticleParameters &StaticParams=FGeometryParticleParameters())
 
template<typename Lambda >
void ModifyGeometry (const Lambda &Func, const bool bDirectAccess=false)
 
template<typename Lambda >
void ModifyGeometry (EGeometryAccess AccessType, const Lambda &Func)
 
void MarkDirty (const EChaosPropertyFlags DirtyBits, bool bInvalidate=true)
 
CHAOS_API void UpdateShapesArray ()
 
void PrepareBVHImpl ()
 
virtual void SyncRemoteDataImp (FDirtyPropertiesManager &Manager, int32 DataIdx, const FDirtyChaosProperties &RemoteData) const
 
void MarkDirty (const EChaosPropertyFlags DirtyBits, bool bInvalidate)
 
CHAOS_API void MarkDirty (const EChaosPropertyFlags DirtyBits, bool bInvalidate)
 

Protected Attributes

class IPhysicsProxyBaseProxy
 
EParticleType Type
 
FDirtyChaosPropertyFlags MDirtyFlags
 

Member Typedef Documentation

◆ FHandle

template<typename T , int d>
typedef TGeometryParticleHandle<T, d> Chaos::TGeometryParticle< T, d >::FHandle

Member Enumeration Documentation

◆ EGeometryAccess

template<typename T , int d>
enum class Chaos::TGeometryParticle::EGeometryAccess
strongprotected
Enumerator
Direct 
ShallowCopy 
DeepCopy 

Constructor & Destructor Documentation

◆ TGeometryParticle() [1/2]

template<typename T , int d>
Chaos::TGeometryParticle< T, d >::TGeometryParticle ( const FGeometryParticleParameters StaticParams = FGeometryParticleParameters())
inlineprotected

◆ ~TGeometryParticle()

template<typename T , int d>
virtual Chaos::TGeometryParticle< T, d >::~TGeometryParticle ( )
inlinevirtual

◆ TGeometryParticle() [2/2]

template<typename T , int d>
Chaos::TGeometryParticle< T, d >::TGeometryParticle ( const TGeometryParticle< T, d > &  )
delete

Member Function Documentation

◆ CastToKinematicParticle() [1/2]

template<typename T , int d>
TKinematicGeometryParticle< T, d > * Chaos::TGeometryParticle< T, d >::CastToKinematicParticle ( )

◆ CastToKinematicParticle() [2/2]

template<typename T , int d>
const TKinematicGeometryParticle< T, d > * Chaos::TGeometryParticle< T, d >::CastToKinematicParticle ( ) const

◆ CastToRigidParticle() [1/2]

template<typename T , int d>
TPBDRigidParticle< T, d > * Chaos::TGeometryParticle< T, d >::CastToRigidParticle ( )

◆ CastToRigidParticle() [2/2]

template<typename T , int d>
const TPBDRigidParticle< T, d > * Chaos::TGeometryParticle< T, d >::CastToRigidParticle ( ) const

◆ ClearDirtyFlags()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::ClearDirtyFlags ( )
inline

◆ CreateParticle()

template<typename T , int d>
static TUniquePtr< TGeometryParticle< T, d > > Chaos::TGeometryParticle< T, d >::CreateParticle ( const FGeometryParticleParameters Params = FGeometryParticleParameters())
inlinestatic

◆ DirtyFlags()

template<typename T , int d>
const FDirtyChaosPropertyFlags & Chaos::TGeometryParticle< T, d >::DirtyFlags ( ) const
inline

◆ EnabledDuringResim()

template<typename T , int d>
bool Chaos::TGeometryParticle< T, d >::EnabledDuringResim ( ) const
inline

◆ ForceDirty()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::ForceDirty ( EChaosPropertyFlags  CheckBits)
inline

◆ Geometry()

template<typename T , int d>
TSerializablePtr< FImplicitObject > Chaos::TGeometryParticle< T, d >::Geometry ( ) const
inline

◆ GeometrySharedLowLevel()

template<typename T , int d>
const TSharedPtr< const FImplicitObject, ESPMode::ThreadSafe > & Chaos::TGeometryParticle< T, d >::GeometrySharedLowLevel ( ) const
inline

◆ GetDebugName()

template<typename T , int d>
const FString & Chaos::TGeometryParticle< T, d >::GetDebugName ( ) const
inline

◆ GetGeometry()

template<typename T , int d>
const FImplicitObjectRef Chaos::TGeometryParticle< T, d >::GetGeometry ( ) const
inline

◆ GetProxy()

template<typename T , int d>
class IPhysicsProxyBase * Chaos::TGeometryParticle< T, d >::GetProxy ( ) const
inline

◆ GetR()

template<typename T , int d>
const TRotation< T, d > Chaos::TGeometryParticle< T, d >::GetR ( ) const
inline

◆ GetX()

template<typename T , int d>
const TVector< T, d > & Chaos::TGeometryParticle< T, d >::GetX ( ) const
inline

◆ Handle()

template<typename T , int d>
TGeometryParticleHandle< T, d > * Chaos::TGeometryParticle< T, d >::Handle ( ) const
inline

◆ IsClean()

template<typename T , int d>
bool Chaos::TGeometryParticle< T, d >::IsClean ( ) const
inline

◆ IsDirty() [1/2]

template<typename T , int d>
bool Chaos::TGeometryParticle< T, d >::IsDirty ( ) const
inline

◆ IsDirty() [2/2]

template<typename T , int d>
bool Chaos::TGeometryParticle< T, d >::IsDirty ( const EChaosPropertyFlags  CheckBits) const
inline

◆ IsParticleValid()

template<typename T , int d>
virtual bool Chaos::TGeometryParticle< T, d >::IsParticleValid ( ) const
inlinevirtual

◆ LockGeometry()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::LockGeometry ( )

◆ MarkDirty() [1/3]

void Chaos::TGeometryParticle< FReal, 3 >::MarkDirty ( const EChaosPropertyFlags  DirtyBits,
bool  bInvalidate 
)
protected

◆ MarkDirty() [2/3]

CHAOS_API void Chaos::TGeometryParticle< FReal, 3 >::MarkDirty ( const EChaosPropertyFlags  DirtyBits,
bool  bInvalidate 
)
protected

◆ MarkDirty() [3/3]

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::MarkDirty ( const EChaosPropertyFlags  DirtyBits,
bool  bInvalidate = true 
)
protected

◆ MergeGeometry() [1/2]

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::MergeGeometry ( TArray< Chaos::FImplicitObjectPtr > &&  Objects)

◆ MergeGeometry() [2/2]

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::MergeGeometry ( TArray< TUniquePtr< FImplicitObject > > &&  Objects)
inline

◆ MergeShapeInstances()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::MergeShapeInstances ( FShapeInstanceProxyArray &&  InShapes)
inline

◆ MergeShapesArray()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::MergeShapesArray ( FShapesArray &&  InShapesArray)
inline

◆ ModifyGeometry() [1/2]

template<typename T , int d>
template<typename Lambda >
void Chaos::TGeometryParticle< T, d >::ModifyGeometry ( const Lambda &  Func,
const bool  bDirectAccess = false 
)
inlineprotected

◆ ModifyGeometry() [2/2]

template<typename T , int d>
template<typename Lambda >
void Chaos::TGeometryParticle< T, d >::ModifyGeometry ( EGeometryAccess  AccessType,
const Lambda &  Func 
)
inlineprotected

◆ ObjectState()

template<typename T , int d>
EObjectStateType Chaos::TGeometryParticle< T, d >::ObjectState ( ) const

◆ ObjectType()

template<typename T , int d>
EParticleType Chaos::TGeometryParticle< T, d >::ObjectType ( ) const
inline

◆ operator=()

template<typename T , int d>
TGeometryParticle & Chaos::TGeometryParticle< T, d >::operator= ( const TGeometryParticle< T, d > &  )
delete

◆ ParticleID()

template<typename T , int d>
const FParticleID & Chaos::TGeometryParticle< T, d >::ParticleID ( ) const
inline

◆ PrepareBVH()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::PrepareBVH ( )
inline

◆ PrepareBVHImpl()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::PrepareBVHImpl ( )
protected

◆ R()

template<typename T , int d>
const TRotation< T, d > Chaos::TGeometryParticle< T, d >::R ( ) const
inline

◆ RemoveShape()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::RemoveShape ( FPerShapeData InShape,
bool  bWakeTouching 
)

◆ RemoveShapesAtSortedIndices()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::RemoveShapesAtSortedIndices ( const TArrayView< const int32 > &  InIndices)

◆ ResimType()

template<typename T , int d>
EResimType Chaos::TGeometryParticle< T, d >::ResimType ( ) const
inline

◆ SerializationFactory()

template<typename T , int d>
TGeometryParticle< T, d > * Chaos::TGeometryParticle< T, d >::SerializationFactory ( FChaosArchive Ar,
TGeometryParticle< T, d > *  Serializable 
)
inlinestatic

◆ Serialize()

◆ SetEnabledDuringResim()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetEnabledDuringResim ( bool  bEnabledDuringResim)
inline

◆ SetGeometry() [1/4]

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetGeometry ( Chaos::FImplicitObjectPtr  ImplicitObjectPtr)
inline

◆ SetGeometry() [2/4]

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetGeometry ( TSerializablePtr< FImplicitObject RawGeometry)
inline

◆ SetGeometry() [3/4]

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetGeometry ( TSharedPtr< FImplicitObject, ESPMode::ThreadSafe SharedGeometry)
inline

◆ SetGeometry() [4/4]

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetGeometry ( TUniquePtr< FImplicitObject > &&  UniqueGeometry)
inline

◆ SetIgnoreAnalyticCollisions()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetIgnoreAnalyticCollisions ( bool  bIgnoreAnalyticCollisions)

◆ SetIgnoreAnalyticCollisionsImp()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetIgnoreAnalyticCollisionsImp ( FImplicitObject Implicit,
bool  bIgnoreAnalyticCollisions 
)

◆ SetNonFrequentData()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetNonFrequentData ( const FParticleNonFrequentData InData)
inline

◆ SetParticleID()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetParticleID ( const FParticleID ParticleID,
bool  bInvalidate = true 
)
inline

◆ SetProxy()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetProxy ( IPhysicsProxyBase InProxy)
inline

◆ SetR()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetR ( const TRotation< T, d > &  InR,
bool  bInvalidate = true 
)

◆ SetResimType()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetResimType ( EResimType  ResimType)
inline

◆ SetShapeCollisionTraceType()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetShapeCollisionTraceType ( int32  InShapeIndex,
EChaosCollisionTraceFlag  TraceType 
)
inline

◆ SetShapeInstances()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetShapeInstances ( FShapeInstanceProxyArray &&  InShapes)
inline

◆ SetShapeQueryCollisionEnabled()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetShapeQueryCollisionEnabled ( int32  InShapeIndex,
bool  bInEnabled 
)
inline

◆ SetShapeSimCollisionEnabled()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetShapeSimCollisionEnabled ( int32  InShapeIndex,
bool  bInEnabled 
)
inline

◆ SetShapeSimData()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetShapeSimData ( int32  InShapeIndex,
const FCollisionFilterData SimData 
)
inline

◆ SetSpatialIdx()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetSpatialIdx ( FSpatialAccelerationIdx  Idx)
inline

◆ SetUniqueIdx()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetUniqueIdx ( const FUniqueIdx  UniqueIdx,
bool  bInvalidate = true 
)
inline

◆ SetUserData()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetUserData ( void InUserData)
inline

◆ SetX()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetX ( const TVector< T, d > &  InX,
bool  bInvalidate = true 
)

◆ SetXR()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SetXR ( const FParticlePositionRotation InXR,
bool  bInvalidate = true 
)
inline

◆ ShapeInstances()

template<typename T , int d>
const FShapeInstanceProxyArray & Chaos::TGeometryParticle< T, d >::ShapeInstances ( ) const
inline

◆ ShapesArray()

template<typename T , int d>
const FShapesArray & Chaos::TGeometryParticle< T, d >::ShapesArray ( ) const
inline

◆ SharedGeometryLowLevel()

template<typename T , int d>
TSharedPtr< const FImplicitObject, ESPMode::ThreadSafe > Chaos::TGeometryParticle< T, d >::SharedGeometryLowLevel ( ) const
inline

◆ SpatialIdx()

template<typename T , int d>
FSpatialAccelerationIdx Chaos::TGeometryParticle< T, d >::SpatialIdx ( ) const
inline

◆ SyncRemoteData()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::SyncRemoteData ( FDirtyPropertiesManager Manager,
int32  DataIdx,
FDirtyChaosProperties RemoteData,
const TArray< int32 > &  ShapeDataIndices,
FShapeDirtyData ShapesRemoteData 
) const
inline

◆ SyncRemoteDataImp()

template<typename T , int d>
virtual void Chaos::TGeometryParticle< T, d >::SyncRemoteDataImp ( FDirtyPropertiesManager Manager,
int32  DataIdx,
const FDirtyChaosProperties RemoteData 
) const
inlineprotectedvirtual

◆ UniqueIdx()

template<typename T , int d>
FUniqueIdx Chaos::TGeometryParticle< T, d >::UniqueIdx ( ) const
inline

◆ UpdateShapeBounds() [1/2]

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::UpdateShapeBounds ( )
inline

◆ UpdateShapeBounds() [2/2]

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::UpdateShapeBounds ( const FRigidTransform3 Transform)
inline

◆ UpdateShapesArray()

template<typename T , int d>
void Chaos::TGeometryParticle< T, d >::UpdateShapesArray ( )
protected

◆ UserData()

template<typename T , int d>
void * Chaos::TGeometryParticle< T, d >::UserData ( ) const
inline

◆ X()

template<typename T , int d>
const TVector< T, d > & Chaos::TGeometryParticle< T, d >::X ( ) const
inline

◆ XR()

template<typename T , int d>
const FParticlePositionRotation & Chaos::TGeometryParticle< T, d >::XR ( ) const
inline

Member Data Documentation

◆ AlwaysSerializable

template<typename T , int d>
constexpr bool Chaos::TGeometryParticle< T, d >::AlwaysSerializable = true
staticconstexpr

◆ MDirtyFlags

template<typename T , int d>
FDirtyChaosPropertyFlags Chaos::TGeometryParticle< T, d >::MDirtyFlags
protected

◆ Proxy

template<typename T , int d>
class IPhysicsProxyBase* Chaos::TGeometryParticle< T, d >::Proxy
protected

◆ Type

template<typename T , int d>
EParticleType Chaos::TGeometryParticle< T, d >::Type
protected

The documentation for this class was generated from the following files: