UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FISMPool Struct Reference

#include <ISMPoolComponent.h>

Public Types

using FISMIndex = int32
 

Public Member Functions

 FISMPool ()
 
FISMIndex GetOrAddISM (UISMPoolComponent *OwningComponent, const FISMPoolStaticMeshInstance &MeshInstance, bool &bOutISMCreated)
 
void RemoveISM (FISMIndex ISMIndex, bool bKeepAlive, bool bRecycle)
 
FISMPoolMeshInfo AddInstancesToISM (UISMPoolComponent *OwningComponent, const FISMPoolStaticMeshInstance &MeshInstance, int32 InstanceCount, TArrayView< const float > CustomDataFloats)
 
void RemoveInstancesFromISM (const FISMPoolMeshInfo &MeshInfo)
 
bool BatchUpdateInstancesTransforms (FISMPoolMeshInfo &MeshInfo, int32 StartInstanceIndex, TArrayView< const FTransform > NewInstancesTransforms, bool bWorldSpace, bool bMarkRenderStateDirty, bool bTeleport, bool bAllowPerInstanceRemoval)
 
void BatchUpdateInstanceCustomData (FISMPoolMeshInfo const &MeshInfo, int32 CustomFloatIndex, float CustomFloatValue)
 
void Clear ()
 
void Tick (UISMPoolComponent *OwningComponent)
 
void RequestPreallocateMeshInstance (const FISMPoolStaticMeshInstance &MeshInstances)
 
void ProcessPreallocationRequests (UISMPoolComponent *OwningComponent, int32 MaxPreallocations)
 
void UpdateAbsoluteTransforms (const FTransform &BaseTransform, EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport)
 

Public Attributes

TArray< FISMPoolISMISMs
 
TMap< FISMPoolStaticMeshInstance, FISMIndexMeshToISMIndex
 
TSet< FISMPoolStaticMeshInstancePrellocationQueue
 
TArray< int32FreeList
 
TArray< int32FreeListISM
 
bool bCachedKeepAlive = false
 
bool bCachedRecycle = false
 
bool bDisableBoundsAndTransformUpdate = false
 

Detailed Description

A pool of ISMs.

Member Typedef Documentation

◆ FISMIndex

Constructor & Destructor Documentation

◆ FISMPool()

FISMPool::FISMPool ( )

Member Function Documentation

◆ AddInstancesToISM()

FISMPoolMeshInfo FISMPool::AddInstancesToISM ( UISMPoolComponent OwningComponent,
const FISMPoolStaticMeshInstance MeshInstance,
int32  InstanceCount,
TArrayView< const float CustomDataFloats 
)

Add instances to ISM and return a mesh info handle.

◆ BatchUpdateInstanceCustomData()

void FISMPool::BatchUpdateInstanceCustomData ( FISMPoolMeshInfo const &  MeshInfo,
int32  CustomFloatIndex,
float  CustomFloatValue 
)

◆ BatchUpdateInstancesTransforms()

bool FISMPool::BatchUpdateInstancesTransforms ( FISMPoolMeshInfo MeshInfo,
int32  StartInstanceIndex,
TArrayView< const FTransform NewInstancesTransforms,
bool  bWorldSpace,
bool  bMarkRenderStateDirty,
bool  bTeleport,
bool  bAllowPerInstanceRemoval 
)

Update ISM contents.

◆ Clear()

void FISMPool::Clear ( )

Clear all ISM components and associated data.

◆ GetOrAddISM()

FISMPool::FISMIndex FISMPool::GetOrAddISM ( UISMPoolComponent OwningComponent,
const FISMPoolStaticMeshInstance MeshInstance,
bool bOutISMCreated 
)

Find or add an ISM and return an ISM index handle.

◆ ProcessPreallocationRequests()

void FISMPool::ProcessPreallocationRequests ( UISMPoolComponent OwningComponent,
int32  MaxPreallocations 
)

Process the preallocation queue. Processing is timesliced so that only some of the queue will be processed in every call.

◆ RemoveInstancesFromISM()

void FISMPool::RemoveInstancesFromISM ( const FISMPoolMeshInfo MeshInfo)

Remove instances from an ISM.

◆ RemoveISM()

void FISMPool::RemoveISM ( FISMIndex  ISMIndex,
bool  bKeepAlive,
bool  bRecycle 
)

Remove an ISM.

◆ RequestPreallocateMeshInstance()

void FISMPool::RequestPreallocateMeshInstance ( const FISMPoolStaticMeshInstance MeshInstances)

Add an ISM description to the preallocation queue.

◆ Tick()

void FISMPool::Tick ( UISMPoolComponent OwningComponent)

Tick maintenance of free list and preallocation.

◆ UpdateAbsoluteTransforms()

void FISMPool::UpdateAbsoluteTransforms ( const FTransform BaseTransform,
EUpdateTransformFlags  UpdateTransformFlags,
ETeleportType  Teleport 
)

Member Data Documentation

◆ bCachedKeepAlive

bool FISMPool::bCachedKeepAlive = false

◆ bCachedRecycle

bool FISMPool::bCachedRecycle = false

◆ bDisableBoundsAndTransformUpdate

bool FISMPool::bDisableBoundsAndTransformUpdate = false

◆ FreeList

TArray<int32> FISMPool::FreeList

Free list of indices in ISMs that are empty.

◆ FreeListISM

TArray<int32> FISMPool::FreeListISM

Free list of indices in ISMs that have registered ISM components.

◆ ISMs

TArray<FISMPoolISM> FISMPool::ISMs

Array of ISM objects.

◆ MeshToISMIndex

TMap<FISMPoolStaticMeshInstance, FISMIndex> FISMPool::MeshToISMIndex

Mapping from mesh description to ISMs array slot.

◆ PrellocationQueue

TSet<FISMPoolStaticMeshInstance> FISMPool::PrellocationQueue

Set of ISM descriptions that we would like to preallocate.


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