Navigation
API > API/Runtime > API/Runtime/Engine
| Name | UHierarchicalInstancedStaticMeshComponent |
| Type | class |
| Header File | /Engine/Source/Runtime/Engine/Classes/Components/HierarchicalInstancedStaticMeshComponent.h |
| Include Path | #include "Components/HierarchicalInstancedStaticMeshComponent.h" |
Syntax
UCLASS (ClassGroup=Rendering, Meta=(BlueprintSpawnableComponent), MinimalAPI)
class UHierarchicalInstancedStaticMeshComponent : public UInstancedStaticMeshComponent
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UActorComponent → USceneComponent → UPrimitiveComponent → UMeshComponent → UStaticMeshComponent → UInstancedStaticMeshComponent → UHierarchicalInstancedStaticMeshComponent
Implements Interfaces
- IAsyncPhysicsStateProcessor
- IInterface_AssetUserData
- IInterface_AsyncCompilation
- INavRelevantInterface
- IPhysicsComponent
- ISMInstanceManager
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UHierarchicalInstancedStaticMeshComponent
(
const FObjectInitializer& ObjectInitializer |
Components/HierarchicalInstancedStaticMeshComponent.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
~UHierarchicalInstancedStaticMeshComponent() |
Components/HierarchicalInstancedStaticMeshComponent.h |
Classes
| Name | Remarks |
|---|---|
| FClusterBuilder |
Structs
| Name | Remarks |
|---|---|
| FClusterTree |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bAutoRebuildTreeOnInstanceChanges | bool | Components/HierarchicalInstancedStaticMeshComponent.h | ||
| bCanEnableDensityScaling | bool | In Editor mode we might disable the density scaling for edition | Components/HierarchicalInstancedStaticMeshComponent.h | |
| bConcurrentChanges | bool | Components/HierarchicalInstancedStaticMeshComponent.h | ||
| bEnableDensityScaling | uint32 | Enable for detail meshes that don't really affect the game. | Components/HierarchicalInstancedStaticMeshComponent.h | |
| bIsAsyncBuilding | bool | Components/HierarchicalInstancedStaticMeshComponent.h | ||
| bIsOutOfDate | bool | Components/HierarchicalInstancedStaticMeshComponent.h | ||
| BuiltInstanceBounds | FBox | Bounding box of any built instances (cached from the ClusterTree) | Components/HierarchicalInstancedStaticMeshComponent.h | |
| bUseTranslatedInstanceSpace | uint32 | If true then we allow a translated space when building the cluster tree. | Components/HierarchicalInstancedStaticMeshComponent.h | |
| CacheMeshExtendedBounds | FBoxSphereBounds | The last mesh bounds that was cache. | Components/HierarchicalInstancedStaticMeshComponent.h | |
| ClusterTreePtr | TSharedPtr< TArray< FClusterNode >, ESPMode::ThreadSafe > | Components/HierarchicalInstancedStaticMeshComponent.h | ||
| CurrentDensityScaling | float | Current value of density scaling applied to this component. | Components/HierarchicalInstancedStaticMeshComponent.h | |
| InstanceCountToRender | int32 | Instances to render (including removed one until the build is complete) | Components/HierarchicalInstancedStaticMeshComponent.h | |
| NumBuiltInstances | int32 | The number of instances in the ClusterTree. Subsequent instances will always be rendered. | Components/HierarchicalInstancedStaticMeshComponent.h | |
| NumBuiltRenderInstances | int32 | Normally equal to NumBuiltInstances, but can be lower if density scaling is in effect. | Components/HierarchicalInstancedStaticMeshComponent.h | |
| OcclusionLayerNumNodes | int32 | The number of nodes in the occlusion layer. | Components/HierarchicalInstancedStaticMeshComponent.h | |
| SortedInstances | TArray< int32 > | Table for remapping instances from cluster tree to PerInstanceSMData order. | Components/HierarchicalInstancedStaticMeshComponent.h | |
| TranslatedInstanceSpaceOrigin | FVector | Origin of the translated space used when building the cluster tree. | Components/HierarchicalInstancedStaticMeshComponent.h | |
| UnbuiltInstanceBounds | FBox | Bounding box of any unbuilt instances. | Components/HierarchicalInstancedStaticMeshComponent.h | |
| UnbuiltInstanceBoundsList | TArray< FBox > | Bounds of each individual unbuilt instance, used for LOD calculation. | Components/HierarchicalInstancedStaticMeshComponent.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void ApplyBuildTreeAsync
(
ENamedThreads::Type CurrentThread, |
Apply the results of the async build. | Components/HierarchicalInstancedStaticMeshComponent.h | |
bool BuildTreeIfOutdated
(
bool Async, |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
int32 DesiredInstancesPerLeaf() |
Heuristic for the number of leaves in the tree | Components/HierarchicalInstancedStaticMeshComponent.h | |
FVector GetAverageScale() |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
int32 GetOverlappingBoxCount
(
const FBox& Box |
Get the number of instances that overlap a given box | Components/HierarchicalInstancedStaticMeshComponent.h | |
void GetOverlappingBoxTransforms
(
const FBox& Box, |
Get the transforms of instances inside the provided box | Components/HierarchicalInstancedStaticMeshComponent.h | |
int32 GetOverlappingSphereCount
(
const FSphere& Sphere |
Get the number of instances that overlap a given sphere | Components/HierarchicalInstancedStaticMeshComponent.h | |
void GetTree
(
TArray< FClusterNode >& OutClusterTree |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
EHISMViewRelevanceType GetViewRelevanceType() |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
bool IsAsyncBuilding() |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
bool IsTreeFullyBuilt() |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
void UpdateDensityScaling() |
Will apply current density scaling, if enabled | Components/HierarchicalInstancedStaticMeshComponent.h |
Overridden from UInstancedStaticMeshComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual int32 AddInstance
(
const FTransform& InstanceTransform, |
Add an instance to this component. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual TArray< int32 > AddInstances
(
const TArray< FTransform >& InstanceTransforms, |
Add multiple instances to this component. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual void ApplyComponentInstanceData
(
FInstancedStaticMeshComponentInstanceData* ComponentInstanceData |
Applies the cached component instance data to a newly blueprint constructed component. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual bool BatchUpdateInstancesData
(
int32 StartInstanceIndex, |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
virtual bool BatchUpdateInstancesTransform
(
int32 StartInstanceIndex, |
Update the transform for a number of instances. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual bool BatchUpdateInstancesTransforms
(
int32 StartInstanceIndex, |
This is array view version of the UFUNCTION, blueprints do not support ArrayViews at the time of adding this one | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual bool BatchUpdateInstancesTransforms
(
int32 StartInstanceIndex, |
Update the transform for an array of instances. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual void ClearInstances() |
Clear all instances being rendered by this component. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual TArray< int32 > GetInstancesOverlappingBox
(
const FBox& Box, |
Returns the instances with instance bounds overlapping the specified box. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual TArray< int32 > GetInstancesOverlappingSphere
(
const FVector& Center, |
Returns the instances with instance bounds overlapping the specified sphere. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual int32 GetNumRenderInstances() |
Number of instances in the render-side instance buffer. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual void PreAllocateInstancesMemory
(
int32 AddedInstanceCount |
Preallocated memory to include the new added instances count, to prevent reallloc during the add operation. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual bool RemoveInstance
(
int32 InstanceIndex |
Remove the instance specified. Returns True on success. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual bool RemoveInstances
(
const TArray< int32 >& InstancesToRemove |
Remove the instances specified. Returns True on success. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual bool RemoveInstances
(
const TArray< int32 >& InstancesToRemove, |
Remove the instances specified. Returns True on success. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual bool SetCustomData
(
int32 InstanceIndex, |
Per Instance Custom Data | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual bool SetCustomDataValue
(
int32 InstanceIndex, |
Update custom data for specific instance | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual bool SupportsRemoveSwap () |
Returns true if RemoveAtSwap is enabled. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual bool UpdateInstanceTransform
(
int32 InstanceIndex, |
Update the transform for the instance specified. | Components/HierarchicalInstancedStaticMeshComponent.h |
Overridden from UStaticMeshComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostStaticMeshCompilation() |
Components/HierarchicalInstancedStaticMeshComponent.h |
Overridden from UPrimitiveComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual FPrimitiveSceneProxy * CreateSceneProxy() |
Creates a proxy to represent the primitive to the scene manager in the rendering thread. | Components/HierarchicalInstancedStaticMeshComponent.h |
Overridden from USceneComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual FBoxSphereBounds CalcBounds
(
const FTransform& LocalToWorld |
Calculate the bounds of the component. Default behavior is a bounding box/sphere of zero size. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual void PropagateLightingScenarioChange() |
Updates any visuals after the lighting has changed | Components/HierarchicalInstancedStaticMeshComponent.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void GetResourceSizeEx
(
FResourceSizeEx& CumulativeResourceSize |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
virtual void PostEditChangeChainProperty
(
FPropertyChangedChainEvent& PropertyChangedEvent |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
virtual void PostEditImport() |
Called after importing property values for this object (paste, duplicate or .t3d import) Allow the object to perform any cleanup for properties which shouldn't be duplicated or are unsupported by the script serialization | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual void PostEditUndo() |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
virtual void PostLoad() |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
virtual void Serialize
(
FArchive& Ar |
Components/HierarchicalInstancedStaticMeshComponent.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
float ActualInstancesPerLeaf() |
Average number of instances per leaf | Components/HierarchicalInstancedStaticMeshComponent.h | |
void ApplyBuildTree
(
FClusterBuilder& Builder, |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
void ApplyEmpty() |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
virtual void BuildTree() |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
virtual void BuildTreeAsync() |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
FVector CalcTranslatedInstanceSpaceOrigin() |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
void FlushAccumulatedNavigationUpdates() |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
void GetInstanceTransforms
(
TArray< FMatrix >& InstanceTransforms, |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
int32 GetVertsForLOD
(
int32 LODIndex |
Gets and approximate number of verts for each LOD to generate heuristics | Components/HierarchicalInstancedStaticMeshComponent.h | |
void PostBuildStats() |
For testing, prints some stats after any kind of build | Components/HierarchicalInstancedStaticMeshComponent.h | |
void RemoveInstancesInternal
(
TConstArrayView< int32 > InstanceIndices |
Removes specified instances | Components/HierarchicalInstancedStaticMeshComponent.h | |
void SetPerInstanceLightMapAndEditorData
(
FStaticMeshInstanceData& PerInstanceData, |
Components/HierarchicalInstancedStaticMeshComponent.h |
Overridden from UInstancedStaticMeshComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void BuildComponentInstanceData
(
ERHIFeatureLevel::Type FeatureLevel, |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
virtual void BuildComponentInstanceData
(
EShaderPlatform InShaderPlatform, |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
virtual void GetNavigationPerInstanceTransforms
(
const FBox& AreaBox, |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
virtual FVector GetTranslatedInstanceSpaceOrigin () |
Get the translated space for instance transforms to be passed to the renderer. | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual void OnPostLoadPerInstanceData() |
Creates rendering buffer from serialized data, if any | Components/HierarchicalInstancedStaticMeshComponent.h | |
virtual void PartialNavigationUpdate
(
int32 InstanceIdx |
Components/HierarchicalInstancedStaticMeshComponent.h | ||
virtual bool SupportsPartialNavigationUpdate() |
Components/HierarchicalInstancedStaticMeshComponent.h |
Overridden from UStaticMeshComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual FPrimitiveSceneProxy * CreateStaticMeshSceneProxy
(
Nanite::FMaterialAudit& NaniteMaterials, |
Overload this in child implementations that wish to extend Static Mesh or Nanite scene proxy implementations. | Components/HierarchicalInstancedStaticMeshComponent.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static FBox GetClusterTreeBounds
(
TArray< FClusterNode > const& InClusterTree, |
Components/HierarchicalInstancedStaticMeshComponent.h |