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

#include <ISMPoolComponent.h>

+ Inheritance diagram for UISMPoolComponent:

Public Types

using FMeshGroupId = int32
 
using FMeshId = int32
 

Public Member Functions

virtual ISMPOOL_API void TickComponent (float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override
 
virtual ISMPOOL_API void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize) override
 
ISMPOOL_API FMeshGroupId CreateMeshGroup (bool bAllowPerInstanceRemoval=false)
 
ISMPOOL_API void DestroyMeshGroup (FMeshGroupId MeshGroupId)
 
ISMPOOL_API FMeshId AddMeshToGroup (FMeshGroupId MeshGroupId, const FISMPoolStaticMeshInstance &MeshInstance, int32 InstanceCount, TArrayView< const float > CustomDataFloats)
 
ISMPOOL_API bool BatchUpdateInstancesTransforms (FMeshGroupId MeshGroupId, FMeshId MeshId, int32 StartInstanceIndex, TArrayView< const FTransform > NewInstancesTransforms, bool bWorldSpace=false, bool bMarkRenderStateDirty=false, bool bTeleport=false)
 
ISMPOOL_API bool BatchUpdateInstancesTransforms (FMeshGroupId MeshGroupId, FMeshId MeshId, int32 StartInstanceIndex, const TArray< FTransform > &NewInstancesTransforms, bool bWorldSpace=false, bool bMarkRenderStateDirty=false, bool bTeleport=false)
 
ISMPOOL_API bool BatchUpdateInstanceCustomData (FMeshGroupId MeshGroupId, int32 CustomFloatIndex, float CustomFloatValue)
 
ISMPOOL_API void PreallocateMeshInstance (const FISMPoolStaticMeshInstance &MeshInstance)
 
ISMPOOL_API void SetTickablePoolManagement (bool bEnablePoolManagement)
 
ISMPOOL_API void SetOverrideTransformUpdates (bool bOverrideUpdates)
 
ISMPOOL_API void UpdateAbsoluteTransforms (const FTransform &BaseTransform, EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport)
 

Friends

class UISMPoolDebugDrawComponent
 

Detailed Description

UISMPoolComponent. Component that manages a pool of ISM components in order to allow multiple client components that use the same meshes to the share ISMs.

Member Typedef Documentation

◆ FMeshGroupId

◆ FMeshId

Member Function Documentation

◆ AddMeshToGroup()

UISMPoolComponent::FMeshId UISMPoolComponent::AddMeshToGroup ( FMeshGroupId  MeshGroupId,
const FISMPoolStaticMeshInstance MeshInstance,
int32  InstanceCount,
TArrayView< const float CustomDataFloats 
)

Add a static mesh for a mesh group

◆ BatchUpdateInstanceCustomData()

bool UISMPoolComponent::BatchUpdateInstanceCustomData ( FMeshGroupId  MeshGroupId,
int32  CustomFloatIndex,
float  CustomFloatValue 
)

Update a single slot of custom instance data for all instances in a mesh group

◆ BatchUpdateInstancesTransforms() [1/2]

bool UISMPoolComponent::BatchUpdateInstancesTransforms ( FMeshGroupId  MeshGroupId,
FMeshId  MeshId,
int32  StartInstanceIndex,
const TArray< FTransform > &  NewInstancesTransforms,
bool  bWorldSpace = false,
bool  bMarkRenderStateDirty = false,
bool  bTeleport = false 
)

◆ BatchUpdateInstancesTransforms() [2/2]

bool UISMPoolComponent::BatchUpdateInstancesTransforms ( FMeshGroupId  MeshGroupId,
FMeshId  MeshId,
int32  StartInstanceIndex,
TArrayView< const FTransform NewInstancesTransforms,
bool  bWorldSpace = false,
bool  bMarkRenderStateDirty = false,
bool  bTeleport = false 
)

Update transforms for a mesh group

◆ CreateMeshGroup()

UISMPoolComponent::FMeshGroupId UISMPoolComponent::CreateMeshGroup ( bool  bAllowPerInstanceRemoval = false)

Create an Mesh group which represent an arbitrary set of mesh with their instance no resources are created until the meshes are added for this group return a mesh group Id used to add and update instances

◆ DestroyMeshGroup()

void UISMPoolComponent::DestroyMeshGroup ( FMeshGroupId  MeshGroupId)

Destroy a mesh group and its associated resources

◆ GetResourceSizeEx()

void UISMPoolComponent::GetResourceSizeEx ( FResourceSizeEx CumulativeResourceSize)
overridevirtual

◆ PreallocateMeshInstance()

void UISMPoolComponent::PreallocateMeshInstance ( const FISMPoolStaticMeshInstance MeshInstance)

Preallocate an ISM in the pool. Doing this early for known mesh instance descriptions can reduce the component registration cost of AddMeshToGroup() for newly discovered mesh descriptions.

◆ SetOverrideTransformUpdates()

void UISMPoolComponent::SetOverrideTransformUpdates ( bool  bOverrideUpdates)

◆ SetTickablePoolManagement()

void UISMPoolComponent::SetTickablePoolManagement ( bool  bEnablePoolManagement)

◆ TickComponent()

void UISMPoolComponent::TickComponent ( float  DeltaTime,
enum ELevelTick  TickType,
FActorComponentTickFunction ThisTickFunction 
)
overridevirtual

◆ UpdateAbsoluteTransforms()

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

Friends And Related Symbol Documentation

◆ UISMPoolDebugDrawComponent


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