UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FoliageISMActor.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "InstancedFoliage.h"
7#include "Misc/Guid.h"
9
10struct FFoliageInfo;
12class UPrimitiveComponent;
13class UBlueprint;
15
17{
21 , Guid(FGuid::NewGuid())
22 , ActorClass(nullptr)
23#endif
24 {
25 }
26
27 virtual ~FFoliageISMActor();
28
29#if WITH_EDITORONLY_DATA
30 FGuid Guid;
33 TObjectPtr<UClass> ActorClass;
34#endif
35 virtual void Serialize(FArchive& Ar) override;
36 virtual void PostSerialize(FArchive& Ar) override;
37 virtual void PostLoad() override;
38
39#if WITH_EDITOR
40 virtual void AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector) override;
41 virtual bool IsInitialized() const override;
42 virtual void Initialize(const UFoliageType* FoliageType) override;
43 virtual void Uninitialize() override;
44 virtual void Reapply(const UFoliageType* FoliageType) override;
45 virtual int32 GetInstanceCount() const override;
46 virtual void PreAddInstances(const UFoliageType* FoliageType, int32 AddedInstanceCount) override;
47 virtual void AddInstance(const FFoliageInstance& NewInstance) override;
48 virtual void RemoveInstance(int32 InstanceIndex) override;
49 virtual void SetInstanceWorldTransform(int32 InstanceIndex, const FTransform& Transform, bool bTeleport) override;
50 virtual FTransform GetInstanceWorldTransform(int32 InstanceIndex) const override;
51 virtual bool IsOwnedComponent(const UPrimitiveComponent* Component) const override;
52
53 virtual void SelectAllInstances(bool bSelect) override;
54 virtual void SelectInstance(bool bSelect, int32 Index) override;
55 virtual void SelectInstances(bool bSelect, const TSet<int32>& SelectedIndices) override;
56 virtual int32 GetInstanceIndexFrom(const UPrimitiveComponent* Component, int32 ComponentIndex) const;
57 virtual FBox GetSelectionBoundingBox(const TSet<int32>& SelectedIndices) const override;
58 virtual void ApplySelection(bool bApply, const TSet<int32>& SelectedIndices) override;
59 virtual void ClearSelection(const TSet<int32>& SelectedIndices) override;
60
61 virtual void ForEachSMInstance(TFunctionRef<bool(FSMInstanceId)> Callback) const override;
62 virtual void ForEachSMInstance(int32 InstanceIndex, TFunctionRef<bool(FSMInstanceId)> Callback) const override;
63
64 virtual void BeginUpdate() override;
65 virtual void EndUpdate() override;
66 virtual void Refresh(bool bAsync, bool bForce) override;
68 virtual void PreEditUndo(UFoliageType* FoliageType) override;
69 virtual void PostEditUndo(FFoliageInfo* InInfo, UFoliageType* FoliageType) override;
70 virtual void NotifyFoliageTypeWillChange(UFoliageType* FoliageType) override;
71 virtual bool NotifyFoliageTypeChanged(UFoliageType* FoliageType, bool bSourceChanged) override;
72
73private:
74 void RegisterDelegates();
75 void UnregisterDelegates();
77#endif
78
79private:
80 //~ IISMPartitionInstanceManager interface
81 virtual FText GetISMPartitionInstanceDisplayName(const FISMClientInstanceId& InstanceId) const override;
82 virtual FText GetISMPartitionInstanceTooltip(const FISMClientInstanceId& InstanceId) const override;
83 virtual bool CanEditISMPartitionInstance(const FISMClientInstanceId& InstanceId) const override;
84 virtual bool CanMoveISMPartitionInstance(const FISMClientInstanceId& InstanceId, const ETypedElementWorldType InWorldType) const override;
85 virtual bool GetISMPartitionInstanceTransform(const FISMClientInstanceId& InstanceId, FTransform& OutInstanceTransform, bool bWorldSpace = false) const override;
86 virtual bool SetISMPartitionInstanceTransform(const FISMClientInstanceId& InstanceId, const FTransform& InstanceTransform, bool bWorldSpace = false, bool bTeleport = false) override;
87 virtual void NotifyISMPartitionInstanceMovementStarted(const FISMClientInstanceId& InstanceId) override;
88 virtual void NotifyISMPartitionInstanceMovementOngoing(const FISMClientInstanceId& InstanceId) override;
89 virtual void NotifyISMPartitionInstanceMovementEnded(const FISMClientInstanceId& InstanceId) override;
90 virtual void NotifyISMPartitionInstanceSelectionChanged(const FISMClientInstanceId& InstanceId, const bool bIsSelected) override;
91 virtual bool DeleteISMPartitionInstances(TArrayView<const FISMClientInstanceId> InstanceIds) override;
92 virtual bool DuplicateISMPartitionInstances(TArrayView<const FISMClientInstanceId> InstanceIds, TArray<FISMClientInstanceId>& OutNewInstanceIds) override;
93
94#if WITH_EDITOR
97#endif
98};
#define WITH_EDITORONLY_DATA
Definition CoreMiscDefines.h:24
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ETypedElementWorldType
Definition TypedElementWorldInterface.h:26
if(Failed) console_printf("Failed.\n")
Definition Archive.h:1208
Definition UObjectGlobals.h:2492
Definition Text.h:385
Definition ISMPartitionInstanceManager.h:24
Definition ArrayView.h:139
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition SortedMap.h:20
Definition Blueprint.h:403
Definition FoliageType_Actor.h:12
Definition FoliageType.h:106
Definition InstancedStaticMeshComponent.h:158
Definition Object.h:95
U16 Index
Definition radfft.cpp:71
Definition FoliageISMActor.h:17
virtual void PostLoad() override
Definition FoliageISMActor.cpp:46
FFoliageISMActor(FFoliageInfo *Info)
Definition FoliageISMActor.h:18
virtual ~FFoliageISMActor()
Definition FoliageISMActor.cpp:18
virtual void PostSerialize(FArchive &Ar) override
Definition FoliageISMActor.cpp:35
Definition InstancedFoliage.h:196
virtual void AddReferencedObjects(UObject *InThis, FReferenceCollector &Collector)
Definition InstancedFoliage.h:204
Definition InstancedFoliage.h:271
Definition InstancedFoliage.h:407
Definition InstancedFoliage.h:82
Definition Guid.h:109
Definition ISMPartitionClient.h:10
Definition ISMPartitionClient.h:62
Definition SMInstanceElementId.h:20
Definition ObjectPtr.h:488