UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ISMInstanceManager Class Referenceabstract

#include <SMInstanceManager.h>

+ Inheritance diagram for ISMInstanceManager:

Public Member Functions

virtual FText GetSMInstanceDisplayName (const FSMInstanceId &InstanceId) const
 
virtual FText GetSMInstanceTooltip (const FSMInstanceId &InstanceId) const
 
virtual bool CanEditSMInstance (const FSMInstanceId &InstanceId) const =0
 
virtual bool CanMoveSMInstance (const FSMInstanceId &InstanceId, const ETypedElementWorldType WorldType) const =0
 
virtual bool GetSMInstanceTransform (const FSMInstanceId &InstanceId, FTransform &OutInstanceTransform, bool bWorldSpace=false) const =0
 
virtual bool SetSMInstanceTransform (const FSMInstanceId &InstanceId, const FTransform &InstanceTransform, bool bWorldSpace=false, bool bMarkRenderStateDirty=false, bool bTeleport=false)=0
 
virtual void NotifySMInstanceMovementStarted (const FSMInstanceId &InstanceId)=0
 
virtual void NotifySMInstanceMovementOngoing (const FSMInstanceId &InstanceId)=0
 
virtual void NotifySMInstanceMovementEnded (const FSMInstanceId &InstanceId)=0
 
virtual void NotifySMInstanceSelectionChanged (const FSMInstanceId &InstanceId, const bool bIsSelected)=0
 
virtual void ForEachSMInstanceInSelectionGroup (const FSMInstanceId &InstanceId, TFunctionRef< bool(FSMInstanceId)> Callback)
 
virtual bool CanDeleteSMInstance (const FSMInstanceId &InstanceId) const
 
virtual bool DeleteSMInstances (TArrayView< const FSMInstanceId > InstanceIds)=0
 
virtual bool CanDuplicateSMInstance (const FSMInstanceId &InstanceId) const
 
virtual bool DuplicateSMInstances (TArrayView< const FSMInstanceId > InstanceIds, TArray< FSMInstanceId > &OutNewInstanceIds)=0
 
virtual TSubclassOf< USMInstanceProxyEditingObjectGetSMInstanceEditingProxyClass () const
 

Member Function Documentation

◆ CanDeleteSMInstance()

virtual bool ISMInstanceManager::CanDeleteSMInstance ( const FSMInstanceId InstanceId) const
inlinevirtual

Can the given static mesh instance be deleted?

Returns
True if it can be deleted, false otherwise.

◆ CanDuplicateSMInstance()

virtual bool ISMInstanceManager::CanDuplicateSMInstance ( const FSMInstanceId InstanceId) const
inlinevirtual

Can the given static mesh instance be duplicated?

Returns
True if it can be duplicated, false otherwise.

◆ CanEditSMInstance()

virtual bool ISMInstanceManager::CanEditSMInstance ( const FSMInstanceId InstanceId) const
pure virtual

Can the given static mesh instance be edited?

Returns
True if it can be edited, false otherwise.

Implemented in UInstancedStaticMeshComponent, and ALightWeightInstanceStaticMeshManager.

◆ CanMoveSMInstance()

virtual bool ISMInstanceManager::CanMoveSMInstance ( const FSMInstanceId InstanceId,
const ETypedElementWorldType  WorldType 
) const
pure virtual

Can the given static mesh instance be moved in the world?

Returns
True if it can be moved, false otherwise.

Implemented in UInstancedStaticMeshComponent, and ALightWeightInstanceStaticMeshManager.

◆ DeleteSMInstances()

virtual bool ISMInstanceManager::DeleteSMInstances ( TArrayView< const FSMInstanceId InstanceIds)
pure virtual

Attempt to delete the given static mesh instances.

Returns
True if any instances were deleted, false otherwise.

Implemented in UInstancedStaticMeshComponent, and ALightWeightInstanceStaticMeshManager.

◆ DuplicateSMInstances()

virtual bool ISMInstanceManager::DuplicateSMInstances ( TArrayView< const FSMInstanceId InstanceIds,
TArray< FSMInstanceId > &  OutNewInstanceIds 
)
pure virtual

Attempt to duplicate the given static mesh instances, retrieving the IDs of any new instances.

Returns
True if any instances were duplicated, false otherwise.

Implemented in UInstancedStaticMeshComponent, and ALightWeightInstanceStaticMeshManager.

◆ ForEachSMInstanceInSelectionGroup()

virtual void ISMInstanceManager::ForEachSMInstanceInSelectionGroup ( const FSMInstanceId InstanceId,
TFunctionRef< bool(FSMInstanceId)>  Callback 
)
inlinevirtual

Enumerate every static mesh instance element within the selection group that the given static mesh instance belongs to (including the given static mesh instance). A selection group allows disparate static mesh instances to be considered as a single logical unit for selection, and is mostly used when a manager creates multiple static mesh instances for a single managed instance.

If any static mesh instance within the group is selected, then all static mesh instances within the group are considered selected. This means that:

  • Querying the selection state for any static mesh element within the group will be consistent, regardless of which static mesh instance is in the selection set.
  • Attempting to select a static mesh instance within the group, when another static mesh instance from the group is already selected, will be a no-op.
  • Attempting to deselect a static mesh instance within the group will deselect all static mesh instances within the group.

There is no guarantee of which static mesh instance within the group will actually end up in the selection set, nor which static mesh instance within the group NotifySMInstanceSelectionChanged will be called for. It is the responsibility of the manager to handle this correctly by treating any static mesh instance within a selection group as one logical unit for all the static mesh instances within the group.

◆ GetSMInstanceDisplayName()

virtual FText ISMInstanceManager::GetSMInstanceDisplayName ( const FSMInstanceId InstanceId) const
inlinevirtual

Get the display name of the given static mesh instance.

Reimplemented in ALightWeightInstanceStaticMeshManager.

◆ GetSMInstanceEditingProxyClass()

virtual TSubclassOf< USMInstanceProxyEditingObject > ISMInstanceManager::GetSMInstanceEditingProxyClass ( ) const
inlinevirtual

Optionally specify a different class for a proxy object than the default one. This can be useful if a full UObject is needed to represent the SM Instance

◆ GetSMInstanceTooltip()

virtual FText ISMInstanceManager::GetSMInstanceTooltip ( const FSMInstanceId InstanceId) const
inlinevirtual

Get the tooltip of the given static mesh instance.

Reimplemented in ALightWeightInstanceStaticMeshManager.

◆ GetSMInstanceTransform()

virtual bool ISMInstanceManager::GetSMInstanceTransform ( const FSMInstanceId InstanceId,
FTransform OutInstanceTransform,
bool  bWorldSpace = false 
) const
pure virtual

Attempt to get the transform of the given static mesh instance.

Note
The transform should be in the local space of the owner ISM component, unless bWorldSpace is set.
Returns
True if the transform was retrieved, false otherwise.

Implemented in UInstancedStaticMeshComponent, and ALightWeightInstanceStaticMeshManager.

◆ NotifySMInstanceMovementEnded()

virtual void ISMInstanceManager::NotifySMInstanceMovementEnded ( const FSMInstanceId InstanceId)
pure virtual

Notify that the given static mesh instance is done being moved.

Note
This gives the manager a chance to end a move operation.

Implemented in UInstancedStaticMeshComponent, and ALightWeightInstanceStaticMeshManager.

◆ NotifySMInstanceMovementOngoing()

virtual void ISMInstanceManager::NotifySMInstanceMovementOngoing ( const FSMInstanceId InstanceId)
pure virtual

Notify that the given static mesh instance is currently being moved.

Note
This gives the manager a chance to update a move operation.

Implemented in UInstancedStaticMeshComponent, and ALightWeightInstanceStaticMeshManager.

◆ NotifySMInstanceMovementStarted()

virtual void ISMInstanceManager::NotifySMInstanceMovementStarted ( const FSMInstanceId InstanceId)
pure virtual

Notify that the given static mesh instance is about to be moved.

Note
This gives the manager a chance to start a move operation, to avoid performing repeated work until the move is finished.

Implemented in UInstancedStaticMeshComponent, and ALightWeightInstanceStaticMeshManager.

◆ NotifySMInstanceSelectionChanged()

virtual void ISMInstanceManager::NotifySMInstanceSelectionChanged ( const FSMInstanceId InstanceId,
const bool  bIsSelected 
)
pure virtual

Notify that the given static mesh instance selection state has changed.

Note
This gives the manager a chance to sync any internal selection state.

Implemented in UInstancedStaticMeshComponent, and ALightWeightInstanceStaticMeshManager.

◆ SetSMInstanceTransform()

virtual bool ISMInstanceManager::SetSMInstanceTransform ( const FSMInstanceId InstanceId,
const FTransform InstanceTransform,
bool  bWorldSpace = false,
bool  bMarkRenderStateDirty = false,
bool  bTeleport = false 
)
pure virtual

Attempt to set the transform of the given static mesh instance.

Note
The transform should be in the local space of the owner ISM component, unless bWorldSpace is set.
Returns
True if the transform was updated, false otherwise.

Implemented in UInstancedStaticMeshComponent, and ALightWeightInstanceStaticMeshManager.


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