UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GeometryCollectionISMPoolRenderer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6
7#include "GeometryCollectionISMPoolRenderer.generated.h"
8
11class ULevel;
12
14UCLASS()
16{
18
19
21 TObjectPtr<UISMPoolComponent> CachedISMPoolComponent;
22
24 UPROPERTY()
25 TObjectPtr<UISMPoolComponent> LocalISMPoolComponent;
26
27public:
28 //~ Begin IGeometryCollectionExternalRenderInterface Interface.
29 virtual void OnRegisterGeometryCollection(UGeometryCollectionComponent& InComponent) override;
30 virtual void OnUnregisterGeometryCollection() override;
31 virtual void UpdateState(UGeometryCollection const& InGeometryCollection, FTransform const& InComponentTransform, uint32 InStateFlags) override;
32 virtual void UpdateRootTransform(UGeometryCollection const& InGeometryCollection, FTransform const& InRootTransform) override;
34 virtual void UpdateTransforms(UGeometryCollection const& InGeometryCollection, TArrayView<const FTransform3f> InTransforms) override;
35 //~ End IGeometryCollectionExternalRenderInterface Interface.
36
37protected:
40 {
41 int32 GroupIndex = INDEX_NONE;
43 };
44
46 FTransform ComponentTransform = FTransform::Identity;
47
51
54
56 bool bIsRegistered = false;
57
58private:
59 UISMPoolComponent* GetISMPoolComponent() const;
60 UISMPoolComponent* GetOrCreateISMPoolComponent();
61 void InitMergedMeshFromGeometryCollection(UGeometryCollection const& InGeometryCollection);
62 void InitInstancesFromGeometryCollection(UGeometryCollection const& InGeometryCollection);
63 void UpdateMergedMeshTransforms(FTransform const& InBaseTransform, TArrayView<const FTransform3f> InLocalTransforms);
64 void UpdateInstanceTransforms(UGeometryCollection const& InGeometryCollection, FTransform const& InBaseTransform, TArrayView<const FTransform3f> InTransforms);
65 void ReleaseGroup(FISMPoolGroup& InOutGroup);
66};
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GeometryCollectionExternalRenderInterface.h:19
Definition ArrayView.h:139
Definition Array.h:670
Definition GeometryCollectionComponent.h:578
Definition GeometryCollectionISMPoolRenderer.h:16
FISMPoolGroup MergedMeshGroup
Definition GeometryCollectionISMPoolRenderer.h:49
TWeakObjectPtr< ULevel > OwningLevel
Definition GeometryCollectionISMPoolRenderer.h:53
FISMPoolGroup InstancesGroup
Definition GeometryCollectionISMPoolRenderer.h:50
Definition GeometryCollectionObject.h:393
Definition ISMPoolComponent.h:339
Definition Level.h:423
Definition Object.h:95
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25
static CORE_API const TTransform< double > Identity
Definition TransformNonVectorized.h:58
Definition GeometryCollectionISMPoolRenderer.h:40
TArray< int32 > MeshIds
Definition GeometryCollectionISMPoolRenderer.h:42