UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FCollisionStructureManager Class Reference

#include <GeometryCollectionCollisionStructureManager.h>

Public Types

typedef TArray< Chaos::FVec3FPoints
 
typedef Chaos::FBVHParticles FSimplicial
 
typedef Chaos::FImplicitObject FImplicit
 

Public Member Functions

CHAOS_API FCollisionStructureManager ()
 
virtual ~FCollisionStructureManager ()
 

Static Public Member Functions

static CHAOS_API FSimplicialNewSimplicial (const Chaos::FParticles &Vertices, const Chaos::FTriangleMesh &TriMesh, const Chaos::FImplicitObject *Implicit, const int32 CollisionParticlesMaxInput)
 
static CHAOS_API FSimplicialNewSimplicial (const Chaos::FParticles &AllParticles, const TManagedArray< int32 > &BoneMap, const ECollisionTypeEnum CollisionType, Chaos::FTriangleMesh &TriMesh, const float CollisionParticlesFraction)
 
static CHAOS_API void UpdateImplicitFlags (FImplicit *Implicit, const ECollisionTypeEnum CollisionType)
 
static CHAOS_API Chaos::FImplicitObjectRef NewImplicit (Chaos::FErrorReporter ErrorReporter, const Chaos::FParticles &MeshParticles, const Chaos::FTriangleMesh &TriMesh, const FBox &CollisionBounds, const Chaos::FReal Radius, const int32 MinRes, const int32 MaxRes, const float CollisionObjectReduction, const ECollisionTypeEnum CollisionType, const EImplicitTypeEnum ImplicitType)
 
static CHAOS_API Chaos::FImplicitObjectRef NewImplicitBox (const FBox &CollisionBounds, const float CollisionObjectReduction, const ECollisionTypeEnum CollisionType)
 
static CHAOS_API Chaos::FImplicitObjectRef NewImplicitSphere (const Chaos::FReal Radius, const float CollisionObjectReduction, const ECollisionTypeEnum CollisionType)
 
static CHAOS_API Chaos::FImplicitObjectRef NewImplicitCapsule (const Chaos::FReal Radius, const Chaos::FReal Length, const float CollisionObjectReduction, const ECollisionTypeEnum CollisionType)
 
static CHAOS_API Chaos::FImplicitObjectRef NewImplicitCapsule (const FBox &CollisionBounds, const float CollisionObjectReduction, const ECollisionTypeEnum CollisionType)
 
static CHAOS_API Chaos::FImplicitObjectRef NewImplicitConvex (const TArray< int32 > &ConvexIndices, const TManagedArray< Chaos::FConvexPtr > *ConvexGeometry, const ECollisionTypeEnum CollisionType, const FTransform &MassTransform, const Chaos::FReal CollisionMarginFraction, const float CollisionObjectReduction)
 
static CHAOS_API Chaos::FImplicitObjectRef NewImplicitLevelset (Chaos::FErrorReporter ErrorReporter, const Chaos::FParticles &MeshParticles, const Chaos::FTriangleMesh &TriMesh, const FBox &CollisionBounds, const int32 MinRes, const int32 MaxRes, const float CollisionObjectReduction, const ECollisionTypeEnum CollisionType)
 
static CHAOS_API Chaos::FLevelSetRef NewLevelset (Chaos::FErrorReporter ErrorReporter, const Chaos::FParticles &MeshParticles, const Chaos::FTriangleMesh &TriMesh, const FBox &CollisionBounds, const int32 MinRes, const int32 MaxRes, const ECollisionTypeEnum CollisionType)
 
static CHAOS_API FVector CalculateUnitMassInertiaTensor (const FBox &BoundingBox, const Chaos::FReal Radius, const EImplicitTypeEnum ImplicitType)
 
static CHAOS_API Chaos::FReal CalculateVolume (const FBox &BoundingBox, const Chaos::FReal Radius, const EImplicitTypeEnum ImplicitType)
 

Member Typedef Documentation

◆ FImplicit

◆ FPoints

◆ FSimplicial

Constructor & Destructor Documentation

◆ FCollisionStructureManager()

FCollisionStructureManager::FCollisionStructureManager ( )

◆ ~FCollisionStructureManager()

virtual FCollisionStructureManager::~FCollisionStructureManager ( )
inlinevirtual

Member Function Documentation

◆ CalculateUnitMassInertiaTensor()

FVector FCollisionStructureManager::CalculateUnitMassInertiaTensor ( const FBox BoundingBox,
const Chaos::FReal  Radius,
const EImplicitTypeEnum  ImplicitType 
)
static

◆ CalculateVolume()

Chaos::FReal FCollisionStructureManager::CalculateVolume ( const FBox BoundingBox,
const Chaos::FReal  Radius,
const EImplicitTypeEnum  ImplicitType 
)
static

◆ NewImplicit()

Chaos::FImplicitObjectRef FCollisionStructureManager::NewImplicit ( Chaos::FErrorReporter  ErrorReporter,
const Chaos::FParticles MeshParticles,
const Chaos::FTriangleMesh TriMesh,
const FBox CollisionBounds,
const Chaos::FReal  Radius,
const int32  MinRes,
const int32  MaxRes,
const float  CollisionObjectReduction,
const ECollisionTypeEnum  CollisionType,
const EImplicitTypeEnum  ImplicitType 
)
static

Build a box, sphere, or level set based on ImplicitType.

ErrorReporter - level set only MeshParticles - level set only TriMesh - level set only CollisionBounds - box and level set Radius - sphere only MinRes - level set only MaxRes - level set only CollisionObjectReduction - shrink percentage; value of 10 reduces by 10%, 0 does nothing, 100 shrinks to zero. CollisionType - param forwarded to UpdateImplictFlags(). ImplicitType - type of implicit shape to build.

◆ NewImplicitBox()

Chaos::FImplicitObjectRef FCollisionStructureManager::NewImplicitBox ( const FBox CollisionBounds,
const float  CollisionObjectReduction,
const ECollisionTypeEnum  CollisionType 
)
static

◆ NewImplicitCapsule() [1/2]

Chaos::FImplicitObjectRef FCollisionStructureManager::NewImplicitCapsule ( const Chaos::FReal  Radius,
const Chaos::FReal  Length,
const float  CollisionObjectReduction,
const ECollisionTypeEnum  CollisionType 
)
static

◆ NewImplicitCapsule() [2/2]

Chaos::FImplicitObjectRef FCollisionStructureManager::NewImplicitCapsule ( const FBox CollisionBounds,
const float  CollisionObjectReduction,
const ECollisionTypeEnum  CollisionType 
)
static

◆ NewImplicitConvex()

Chaos::FImplicitObjectRef FCollisionStructureManager::NewImplicitConvex ( const TArray< int32 > &  ConvexIndices,
const TManagedArray< Chaos::FConvexPtr > *  ConvexGeometry,
const ECollisionTypeEnum  CollisionType,
const FTransform MassTransform,
const Chaos::FReal  CollisionMarginFraction,
const float  CollisionObjectReduction 
)
static

◆ NewImplicitLevelset()

Chaos::FImplicitObjectRef FCollisionStructureManager::NewImplicitLevelset ( Chaos::FErrorReporter  ErrorReporter,
const Chaos::FParticles MeshParticles,
const Chaos::FTriangleMesh TriMesh,
const FBox CollisionBounds,
const int32  MinRes,
const int32  MaxRes,
const float  CollisionObjectReduction,
const ECollisionTypeEnum  CollisionType 
)
static

◆ NewImplicitSphere()

Chaos::FImplicitObjectRef FCollisionStructureManager::NewImplicitSphere ( const Chaos::FReal  Radius,
const float  CollisionObjectReduction,
const ECollisionTypeEnum  CollisionType 
)
static

◆ NewLevelset()

Chaos::FLevelSetRef FCollisionStructureManager::NewLevelset ( Chaos::FErrorReporter  ErrorReporter,
const Chaos::FParticles MeshParticles,
const Chaos::FTriangleMesh TriMesh,
const FBox CollisionBounds,
const int32  MinRes,
const int32  MaxRes,
const ECollisionTypeEnum  CollisionType 
)
static

◆ NewSimplicial() [1/2]

FCollisionStructureManager::FSimplicial * FCollisionStructureManager::NewSimplicial ( const Chaos::FParticles AllParticles,
const TManagedArray< int32 > &  BoneMap,
const ECollisionTypeEnum  CollisionType,
Chaos::FTriangleMesh TriMesh,
const float  CollisionParticlesFraction 
)
static

Culls particles by importance (See FTriangleMesh::GetVertexImportanceOrdering()), and returns a bounding volume hierarchy of the remainder.

◆ NewSimplicial() [2/2]

FCollisionStructureManager::FSimplicial * FCollisionStructureManager::NewSimplicial ( const Chaos::FParticles Vertices,
const Chaos::FTriangleMesh TriMesh,
const Chaos::FImplicitObject Implicit,
const int32  CollisionParticlesMaxInput 
)
static

Culls particles inside Implicit, and coincident particles (defined by being within 1/20'th of the size of the domain from one another), truncates at CollisionParticlesMaxInput, and returns a bounding volume hierarchy of the remainder.

◆ UpdateImplicitFlags()

void FCollisionStructureManager::UpdateImplicitFlags ( FImplicit Implicit,
const ECollisionTypeEnum  CollisionType 
)
static

Calls SetDoCollide(false) and SetConvex(false) on Implicit if CollisionType is ECollisionTypeEnum::Chaos_Surface_Volumetric.


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