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

#include <FoliageInstancedStaticMeshComponent.h>

+ Inheritance diagram for UFoliageInstancedStaticMeshComponent:

Public Member Functions

virtual FOLIAGE_API void ReceiveComponentDamage (float DamageAmount, FDamageEvent const &DamageEvent, AController *EventInstigator, AActor *DamageCauser) override
 
void SetGenerationGuid (const FGuid &InGuid)
 
const FGuidGetGenerationGuid () const
 
- Public Member Functions inherited from UHierarchicalInstancedStaticMeshComponent
ENGINE_API void ApplyBuildTreeAsync (ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent, TSharedRef< FClusterBuilder, ESPMode::ThreadSafe > Builder, double StartTime)
 
virtual ENGINE_API void Serialize (FArchive &Ar) override
 
virtual ENGINE_API void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize) override
 
virtual ENGINE_API void PostLoad () override
 
virtual ENGINE_API void PostEditImport () override
 
virtual ENGINE_API FPrimitiveSceneProxyCreateSceneProxy () override
 
virtual ENGINE_API FBoxSphereBounds CalcBounds (const FTransform &BoundTransform) const override
 
virtual ENGINE_API int32 AddInstance (const FTransform &InstanceTransform, bool bWorldSpace=false) override
 
virtual ENGINE_API TArray< int32AddInstances (const TArray< FTransform > &InstanceTransforms, bool bShouldReturnIndices, bool bWorldSpace=false, bool bUpdateNavigation=true) override
 
virtual ENGINE_API bool RemoveInstance (int32 InstanceIndex) override
 
virtual ENGINE_API bool RemoveInstances (const TArray< int32 > &InstancesToRemove) override
 
virtual ENGINE_API bool RemoveInstances (const TArray< int32 > &InstancesToRemove, bool bInstanceArrayAlreadySortedInReverseOrder) override
 
virtual ENGINE_API bool UpdateInstanceTransform (int32 InstanceIndex, const FTransform &NewInstanceTransform, bool bWorldSpace, bool bMarkRenderStateDirty=false, bool bTeleport=false) override
 
virtual ENGINE_API bool SetCustomDataValue (int32 InstanceIndex, int32 CustomDataIndex, float CustomDataValue, bool bMarkRenderStateDirty=false) override
 
virtual ENGINE_API bool SetCustomData (int32 InstanceIndex, TArrayView< const float > InCustomData, bool bMarkRenderStateDirty=false) override
 
virtual ENGINE_API bool BatchUpdateInstancesTransforms (int32 StartInstanceIndex, const TArray< FTransform > &NewInstancesTransforms, bool bWorldSpace=false, bool bMarkRenderStateDirty=false, bool bTeleport=false) override
 
virtual ENGINE_API bool BatchUpdateInstancesTransforms (int32 StartInstanceIndex, TArrayView< const FTransform > NewInstancesTransforms, bool bWorldSpace, bool bMarkRenderStateDirty, bool bTeleport) override
 
virtual ENGINE_API bool BatchUpdateInstancesTransform (int32 StartInstanceIndex, int32 NumInstances, const FTransform &NewInstancesTransform, bool bWorldSpace=false, bool bMarkRenderStateDirty=false, bool bTeleport=false) override
 
virtual ENGINE_API bool BatchUpdateInstancesData (int32 StartInstanceIndex, int32 NumInstances, FInstancedStaticMeshInstanceData *StartInstanceData, bool bMarkRenderStateDirty=false, bool bTeleport=false) override
 
virtual ENGINE_API void ClearInstances () override
 
virtual ENGINE_API TArray< int32GetInstancesOverlappingSphere (const FVector &Center, float Radius, bool bSphereInWorldSpace=true) const override
 
virtual ENGINE_API TArray< int32GetInstancesOverlappingBox (const FBox &Box, bool bBoxInWorldSpace=true) const override
 
virtual ENGINE_API void PreAllocateInstancesMemory (int32 AddedInstanceCount) override
 
virtual bool SupportsRemoveSwap () const override
 
ENGINE_API int32 GetOverlappingSphereCount (const FSphere &Sphere) const
 
ENGINE_API int32 GetOverlappingBoxCount (const FBox &Box) const
 
ENGINE_API void GetOverlappingBoxTransforms (const FBox &Box, TArray< FTransform > &OutTransforms) const
 
ENGINE_API bool BuildTreeIfOutdated (bool Async, bool ForceUpdate)
 
bool IsAsyncBuilding () const
 
bool IsTreeFullyBuilt () const
 
ENGINE_API void GetTree (TArray< FClusterNode > &OutClusterTree) const
 
ENGINE_API FVector GetAverageScale () const
 
ENGINE_API int32 DesiredInstancesPerLeaf ()
 
virtual ENGINE_API void ApplyComponentInstanceData (struct FInstancedStaticMeshComponentInstanceData *InstancedMeshData) override
 
virtual int32 GetNumRenderInstances () const
 
ENGINE_API void UpdateDensityScaling ()
 
virtual ENGINE_API void PropagateLightingScenarioChange () override
 
EHISMViewRelevanceType GetViewRelevanceType () const
 
- Public Member Functions inherited from UInstancedStaticMeshComponent
int32 GetRenderIndex (int32 InInstanceIndex) const
 
int32 AddInstanceWorldSpace (const FTransform &WorldTransform)
 
int32 GetNumInstances () const
 
ENGINE_API TArray< FPrimitiveInstanceIdAddInstancesById (const TArrayView< const FTransform > &InstanceTransforms, bool bWorldSpace=false, bool bUpdateNavigation=true)
 
ENGINE_API FPrimitiveInstanceId AddInstanceById (const FTransform &InstanceTransforms, bool bWorldSpace=false)
 
ENGINE_API void SetCustomDataById (const TArrayView< const FPrimitiveInstanceId > &InstanceIds, TArrayView< const float > CustomDataFloats)
 
void SetCustomDataById (FPrimitiveInstanceId InstanceId, TArrayView< const float > CustomDataFloats)
 
ENGINE_API void SetCustomDataValueById (FPrimitiveInstanceId InstanceId, int32 CustomDataIndex, float CustomDataValue)
 
virtual ENGINE_API void RemoveInstancesById (const TArrayView< const FPrimitiveInstanceId > &InstanceIds, bool bUpdateNavigation=true)
 
void RemoveInstanceById (FPrimitiveInstanceId InstanceId)
 
ENGINE_API void UpdateInstanceTransformById (FPrimitiveInstanceId InstanceId, const FTransform &NewInstanceTransform, bool bWorldSpace=false, bool bTeleport=false)
 
ENGINE_API void SetPreviousTransformById (FPrimitiveInstanceId InstanceId, const FTransform &NewPrevInstanceTransform, bool bWorldSpace=false)
 
ENGINE_API bool IsValidId (FPrimitiveInstanceId InstanceId)
 
int32 GetInstanceIndexForId (FPrimitiveInstanceId InstanceId) const
 
ENGINE_API void SetHasPerInstancePrevTransforms (bool bInHasPreviousTransforms)
 
virtual ENGINE_API void SetNumCustomDataFloats (int32 InNumCustomDataFloats)
 
virtual ENGINE_API bool SetCustomData (int32 InstanceIndexStart, int32 InstanceIndexEnd, TConstArrayView< float > CustomDataFloats, bool bMarkRenderStateDirty=false)
 
ENGINE_API bool GetInstanceTransform (int32 InstanceIndex, FTransform &OutInstanceTransform, bool bWorldSpace=false) const
 
float GetLODDistanceScale () const
 
ENGINE_API void SetLODDistanceScale (float InLODDistanceScale)
 
ENGINE_API bool GetInstancePrevTransform (int32 InstanceIndex, FTransform &OutInstanceTransform, bool bWorldSpace=false) const
 
virtual ENGINE_API void OnUpdateTransform (EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport) override
 
ENGINE_API void UpdateComponentTransform (EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport)
 
virtual ENGINE_API float GetTextureStreamingTransformScale () const override
 
virtual ENGINE_API bool GetMaterialStreamingData (int32 MaterialIndex, FPrimitiveMaterialInfo &MaterialData) const override
 
virtual ENGINE_API bool BuildTextureStreamingDataImpl (ETextureStreamingBuildType BuildType, EMaterialQualityLevel::Type QualityLevel, ERHIFeatureLevel::Type FeatureLevel, TSet< FGuid > &DependentResources, bool &bOutSupportsBuildTextureStreamingData) override
 
virtual ENGINE_API void GetStreamingRenderAssetInfo (FStreamingTextureLevelContext &LevelContext, TArray< FStreamingRenderAssetPrimitiveInfo > &OutStreamingRenderAssets) const override
 
virtual ENGINE_API bool BatchUpdateInstancesTransforms (int32 StartInstanceIndex, const TArray< FTransform > &NewInstancesTransforms, const TArray< FTransform > &NewInstancesPrevTransforms, bool bWorldSpace=false, bool bMarkRenderStateDirty=false, bool bTeleport=false)
 
ENGINE_API int32 GetInstanceCount () const
 
ENGINE_API bool IsValidInstance (int32 InstanceIndex) const
 
ENGINE_API void SetCullDistances (int32 StartCullDistance, int32 EndCullDistance)
 
void GetCullDistances (int32 &OutStartCullDistance, int32 &OutEndCullDistance) const
 
virtual ENGINE_API bool ShouldCreatePhysicsState () const override
 
virtual ENGINE_API void OnRegister () override
 
virtual ENGINE_API void OnUnregister () override
 
void SetRemoveSwap ()
 
void SetUseConservativeBounds (bool bValue)
 
ENGINE_API FInstanceDataFlags MakeInstanceDataFlags (bool bAnyMaterialHasPerInstanceRandom, bool bAnyMaterialHasPerInstanceCustomData) const
 
virtual ENGINE_API TStructOnScope< FActorComponentInstanceDataGetComponentInstanceData () const override
 
virtual ENGINE_API void GetComponentChildElements (TArray< FTypedElementHandle > &OutElementHandles, const bool bAllowCreate=true) override
 
virtual ENGINE_API bool IsHLODRelevant () const override
 
virtual ENGINE_API void SendRenderInstanceData_Concurrent () override
 
virtual ENGINE_API FMatrix GetRenderMatrix () const override
 
virtual ENGINE_API FBodyInstanceGetBodyInstance (FName BoneName=NAME_None, bool bGetWelded=true, int32 Index=INDEX_NONE) const override
 
virtual ENGINE_API void RecreateInstanceBody (int32 InstanceBodyIndex) override
 
virtual ENGINE_API bool CanEditSimulatePhysics () override
 
virtual ENGINE_API void UpdateBounds () override
 
virtual bool SupportsStaticLighting () const override
 
virtual ENGINE_API void GetLightAndShadowMapMemoryUsage (int32 &LightMapMemoryUsage, int32 &ShadowMapMemoryUsage) const override
 
virtual ENGINE_API bool DoCustomNavigableGeometryExport (FNavigableGeometryExport &GeomExport) const override
 
virtual ENGINE_API bool LineTraceComponent (FHitResult &OutHit, const FVector Start, const FVector End, const FCollisionQueryParams &Params) override
 
virtual ENGINE_API bool SweepComponent (FHitResult &OutHit, const FVector Start, const FVector End, const FQuat &ShapRotation, const FCollisionShape &CollisionShape, bool bTraceComplex=false) override
 
virtual ENGINE_API bool OverlapComponent (const FVector &Pos, const FQuat &Rot, const FCollisionShape &CollisionShape) const override
 
virtual ENGINE_API Chaos::FPhysicsObjectGetPhysicsObjectById (Chaos::FPhysicsObjectId Id) const override
 
virtual ENGINE_API TArray< Chaos::FPhysicsObject * > GetAllPhysicsObjects () const override
 
virtual ENGINE_API void GetNavigationData (FNavigationRelevantData &Data) const override
 
virtual ENGINE_API FBox GetNavigationBounds () const override
 
virtual ENGINE_API bool IsNavigationRelevant () const override
 
virtual ENGINE_API bool ShouldSkipDirtyAreaOnAddOrRemove () const override
 
virtual ENGINE_API void BeginDestroy () override
 
virtual ENGINE_API void PreSave (FObjectPreSaveContext ObjectSaveContext) override
 
ENGINE_API void PreApplyComponentInstanceData (struct FInstancedStaticMeshComponentInstanceData *ComponentInstanceData)
 
ENGINE_API bool IsInstanceSelected (int32 InInstanceIndex) const
 
ENGINE_API void SelectInstance (bool bInSelected, int32 InInstanceIndex, int32 InInstanceCount=1)
 
ENGINE_API void ClearInstanceSelection ()
 
virtual ENGINE_API void CollectPSOPrecacheData (const FPSOPrecacheParams &BasePrecachePSOParams, FMaterialInterfacePSOPrecacheParamsList &OutParams) override
 
ENGINE_API void GetInstancesMinMaxScale (FVector &MinScale, FVector &MaxScale) const
 
void OnPostPopulatePerInstanceData ()
 
virtual ENGINE_API void PartialNavigationUpdates (TConstArrayView< FTransform > InstanceTransforms)
 
ENGINE_API TSharedPtr< FISMCInstanceDataSceneProxy, ESPMode::ThreadSafeGetOrCreateInstanceDataSceneProxy ()
 
ENGINE_API const TSharedPtr< FISMCInstanceDataSceneProxy, ESPMode::ThreadSafe > & GetInstanceDataSceneProxy () const
 
ENGINE_API void SetBakedLightingDataChanged (int32 InInstanceIndex)
 
ENGINE_API void SetBakedLightingDataChangedAll ()
 
ENGINE_API void InvalidateInstanceDataTracking ()
 
FPrimitiveMaterialPropertyDescriptor GetUsedMaterialPropertyDesc (EShaderPlatform ShaderPlatform) const
 
FPrimitiveMaterialPropertyDescriptor GetUsedMaterialPropertyDesc (ERHIFeatureLevel::Type FeatureLevel) const
 
- Public Member Functions inherited from ISMInstanceManager
virtual FText GetSMInstanceDisplayName (const FSMInstanceId &InstanceId) const
 
virtual FText GetSMInstanceTooltip (const FSMInstanceId &InstanceId) const
 
virtual void ForEachSMInstanceInSelectionGroup (const FSMInstanceId &InstanceId, TFunctionRef< bool(FSMInstanceId)> Callback)
 
virtual bool CanDeleteSMInstance (const FSMInstanceId &InstanceId) const
 
virtual bool CanDuplicateSMInstance (const FSMInstanceId &InstanceId) const
 
virtual TSubclassOf< USMInstanceProxyEditingObjectGetSMInstanceEditingProxyClass () const
 

Public Attributes

FInstancePointDamageSignature OnInstanceTakePointDamage
 
FInstanceRadialDamageSignature OnInstanceTakeRadialDamage
 
bool bEnableDiscardOnLoad
 
- Public Attributes inherited from UInstancedStaticMeshComponent
TArray< int32InstanceReorderTable
 
SIZE_T ProxySize
 
TArray< FBodyInstance * > InstanceBodies
 

Additional Inherited Members

- Protected Types inherited from UInstancedStaticMeshComponent
enum class  EBoundsCacheType : uint8 {
  Component , Navigation , Local , Count ,
  Other
}
 
- Protected Member Functions inherited from UHierarchicalInstancedStaticMeshComponent
virtual ENGINE_API void BuildComponentInstanceData (ERHIFeatureLevel::Type FeatureLevel, FInstanceUpdateComponentDesc &OutData) override
 
virtual ENGINE_API void BuildComponentInstanceData (EShaderPlatform InShaderPlatform, FInstanceUpdateComponentDesc &OutData) override
 
virtual ENGINE_API void BuildTree ()
 
virtual ENGINE_API void BuildTreeAsync ()
 
ENGINE_API void ApplyBuildTree (FClusterBuilder &Builder, const bool bWasAsyncBuild)
 
ENGINE_API void ApplyEmpty ()
 
ENGINE_API void SetPerInstanceLightMapAndEditorData (FStaticMeshInstanceData &PerInstanceData, const TArray< TRefCountPtr< HHitProxy > > &HitProxies)
 
ENGINE_API FVector CalcTranslatedInstanceSpaceOrigin () const
 
ENGINE_API void GetInstanceTransforms (TArray< FMatrix > &InstanceTransforms, FVector const &Offset) const
 
ENGINE_API void RemoveInstancesInternal (TConstArrayView< int32 > InstanceIndices)
 
ENGINE_API int32 GetVertsForLOD (int32 LODIndex)
 
ENGINE_API float ActualInstancesPerLeaf ()
 
ENGINE_API void PostBuildStats ()
 
virtual ENGINE_API void OnPostLoadPerInstanceData () override
 
virtual ENGINE_API FPrimitiveSceneProxyCreateStaticMeshSceneProxy (Nanite::FMaterialAudit &NaniteMaterials, bool bCreateNanite) override
 
virtual FVector GetTranslatedInstanceSpaceOrigin () const override
 
virtual ENGINE_API void GetNavigationPerInstanceTransforms (const FBox &AreaBox, TArray< FTransform > &InstanceData) const override
 
virtual ENGINE_API void PartialNavigationUpdate (int32 InstanceIdx) override
 
virtual bool SupportsPartialNavigationUpdate () const override
 
ENGINE_API void FlushAccumulatedNavigationUpdates ()
 
- Protected Member Functions inherited from UInstancedStaticMeshComponent
virtual ENGINE_API void OnCreatePhysicsState () override
 
virtual ENGINE_API void OnDestroyPhysicsState () override
 
virtual ENGINE_API bool OnAsyncDestroyPhysicsState (const UE::FTimeout &Timeout) override
 
virtual ENGINE_API void OnAsyncDestroyPhysicsStateBegin_GameThread () override
 
virtual ENGINE_API bool ComponentOverlapComponentImpl (class UPrimitiveComponent *PrimComp, const FVector Pos, const FQuat &Quat, const FCollisionQueryParams &Params) override
 
virtual ENGINE_API bool ComponentOverlapMultiImpl (TArray< struct FOverlapResult > &OutOverlaps, const class UWorld *InWorld, const FVector &Pos, const FQuat &Rot, ECollisionChannel TestChannel, const struct FComponentQueryParams &Params, const struct FCollisionObjectQueryParams &ObjectQueryParams=FCollisionObjectQueryParams::DefaultObjectQueryParam) const override
 
void InvalidateCachedBounds ()
 
ENGINE_API void CalcAndCacheNavigationBounds ()
 
ENGINE_API void CreateAllInstanceBodies ()
 
ENGINE_API void ClearAllInstanceBodies ()
 
virtual ENGINE_API void FullNavigationUpdate ()
 
FBoxSphereBounds CalcBoundsImpl (const FTransform &BoundTransform, bool bForNavigation) const
 
FBoxSphereBounds CalcBoundsImpl (const FTransform &BoundTransform, const FBox &InstanceBounds) const
 
ENGINE_API int32 AddInstanceInternal (int32 InstanceIndex, FInstancedStaticMeshInstanceData *InNewInstanceData, const FTransform &InstanceTransform, bool bWorldSpace)
 
ENGINE_API TArray< int32AddInstancesInternal (TConstArrayView< FTransform > InstanceTransforms, bool bShouldReturnIndices, bool bWorldSpace, bool bUpdateNavigation=true)
 
ENGINE_API bool RemoveInstanceInternal (int32 InstanceIndex, bool InstanceAlreadyRemoved, bool bForceRemoveAtSwap=false, bool bUpdateNavigation=true)
 
FBox GetInstanceNavigationBounds () const
 
ENGINE_API void InitInstanceBody (int32 InstanceIdx, FBodyInstance *InBodyInstance)
 
ENGINE_API void InitInstanceBody (int32 InstanceIdx, FBodyInstance *InstanceBodyInstance, FBodyInstance *ReferenceBodyInstance, bool bRuntimeBodyInstance, UBodySetup *BodySetup)
 
ENGINE_API void ApplyLightMapping (FStaticLightingTextureMapping_InstancedStaticMesh *InMapping, const FStaticLightingBuildContext *LightingContext)
 
ENGINE_API void CreateHitProxyData (TArray< TRefCountPtr< HHitProxy > > &HitProxies)
 
ENGINE_API void BuildLegacyRenderData (FStaticMeshInstanceData &OutData)
 
ENGINE_API void SerializeRenderData (FArchive &Ar)
 
ENGINE_API void BuildInstanceDataDeltaChangeSetCommon (FISMInstanceUpdateChangeSet &ChangeSet)
 
virtual ENGINE_API bool CanEditSMInstance (const FSMInstanceId &InstanceId) const override
 
virtual ENGINE_API bool CanMoveSMInstance (const FSMInstanceId &InstanceId, const ETypedElementWorldType InWorldType) const override
 
virtual ENGINE_API bool GetSMInstanceTransform (const FSMInstanceId &InstanceId, FTransform &OutInstanceTransform, bool bWorldSpace=false) const override
 
virtual ENGINE_API bool SetSMInstanceTransform (const FSMInstanceId &InstanceId, const FTransform &InstanceTransform, bool bWorldSpace=false, bool bMarkRenderStateDirty=false, bool bTeleport=false) override
 
virtual ENGINE_API void NotifySMInstanceMovementStarted (const FSMInstanceId &InstanceId) override
 
virtual ENGINE_API void NotifySMInstanceMovementOngoing (const FSMInstanceId &InstanceId) override
 
virtual ENGINE_API void NotifySMInstanceMovementEnded (const FSMInstanceId &InstanceId) override
 
virtual ENGINE_API void NotifySMInstanceSelectionChanged (const FSMInstanceId &InstanceId, const bool bIsSelected) override
 
virtual ENGINE_API bool DeleteSMInstances (TArrayView< const FSMInstanceId > InstanceIds) override
 
virtual ENGINE_API bool DuplicateSMInstances (TArrayView< const FSMInstanceId > InstanceIds, TArray< FSMInstanceId > &OutNewInstanceIds) override
 
void InitializeInstancingRandomSeed (const bool bAllowRandomSeedValue=false)
 
- Static Protected Member Functions inherited from UHierarchicalInstancedStaticMeshComponent
static ENGINE_API FBox GetClusterTreeBounds (TArray< FClusterNode > const &InClusterTree, const FVector &InOffset)
 
- Protected Attributes inherited from UHierarchicalInstancedStaticMeshComponent
FBox AccumulatedNavigationDirtyArea
 
TArray< FBoxAccumulatedNavigationDirtyAreas
 
FGraphEventArray BuildTreeAsyncTasks
 
EHISMViewRelevanceType ViewRelevanceType = EHISMViewRelevanceType::HISM
 
friend FStaticLightingTextureMapping_InstancedStaticMesh
 
friend FInstancedLightMap2D
 
friend FInstancedShadowMap2D
 
friend FClusterBuilder
 
- Protected Attributes inherited from UInstancedStaticMeshComponent
uint8 bIsInstanceDataApplyCompleted: 1
 
int32 NumPendingLightmaps
 
FPrimitiveInstanceDataManager PrimitiveInstanceDataManager
 
TArray< FInstancedStaticMeshMappingInfoCachedMappings
 
friend FStaticLightingTextureMapping_InstancedStaticMesh
 
friend FInstancedLightMap2D
 
friend FInstancedShadowMap2D
 

Member Function Documentation

◆ GetGenerationGuid()

const FGuid & UFoliageInstancedStaticMeshComponent::GetGenerationGuid ( ) const
inline

◆ ReceiveComponentDamage()

void UFoliageInstancedStaticMeshComponent::ReceiveComponentDamage ( float  DamageAmount,
FDamageEvent const &  DamageEvent,
AController EventInstigator,
AActor DamageCauser 
)
overridevirtual

◆ SetGenerationGuid()

void UFoliageInstancedStaticMeshComponent::SetGenerationGuid ( const FGuid InGuid)
inline

Used by procedural generation to link generated component with its creator

Member Data Documentation

◆ bEnableDiscardOnLoad

bool UFoliageInstancedStaticMeshComponent::bEnableDiscardOnLoad

◆ OnInstanceTakePointDamage

FInstancePointDamageSignature UFoliageInstancedStaticMeshComponent::OnInstanceTakePointDamage

◆ OnInstanceTakeRadialDamage

FInstanceRadialDamageSignature UFoliageInstancedStaticMeshComponent::OnInstanceTakeRadialDamage

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