UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InstancedPlacementClientInfo.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7
8#if WITH_EDITORONLY_DATA
14#endif //WITH_EDITORONLY_DATA
15
16#include "InstancedPlacementClientInfo.generated.h"
17
18#if WITH_EDITORONLY_DATA
21
23{
24 None = 0,
25 AlignToNormal = 1 << 0,
26 NoRandomYaw = 1 << 1,
27 Readjusted = 1 << 2,
28};
29
34{
35public:
37 ENGINE_API FTransform GetInstanceWorldTransform() const;
38 ENGINE_API void SetInstanceWorldTransform(const FTransform& Transform);
39 ENGINE_API void AlignToNormal(const FVector& InNormal, int32 AlignMaxAngle = 0);
40
41 double ZOffset = 0.0;
42 uint32 Flags = (uint32)EPlacementInstanceFlags::None;
43
44protected:
46 FQuat PreAlignRotation = FQuat::Identity;
47};
48#endif //WITH_EDITORONLY_DATA
49
50// Settings which can be shared across partition actors
51UCLASS(Abstract, hideCategories=Object, editinlinenew, collapsecategories, MinimalAPI)
53{
55
56public:
57#if WITH_EDITORONLY_DATA
58 UPROPERTY()
59 FGuid UpdateGuid;
60
61 UPROPERTY(EditAnywhere, Category = "Placement")
63
64 UPROPERTY(EditAnywhere, Category = "Component Settings", meta = (ShowOnlyInnerProperties))
66#endif //WITH_EDITORONLY_DATA
67
68#if WITH_EDITOR
69 ENGINE_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
71#endif // WITH_EDITOR
72};
73
74#if WITH_EDITORONLY_DATA
75// Settings which are unique per partition actor
77{
79
81
82 // Allows detection of client updates while a partition wasn't loaded
83 FGuid UpdateGuid;
84
85 // The client guid we can regenerate the client handle from
87
88 // Editor-only placed instances
90
91 // The client we map to in the partition actor
93
94 // Definition of the set of ISM descriptors and their local space transforms which make up this client
96
97 // Transient, editor-only locality hash of instances
99
100 // The display name of this client
101 FString ClientDisplayName;
102
104
106
109 ENGINE_API void Uninitialize();
112 ENGINE_API bool IsInitialized() const;
113 ENGINE_API void PreEditUndo();
116
117private:
119
120 //~ IISMPartitionInstanceManager interface
121 ENGINE_API virtual FText GetISMPartitionInstanceDisplayName(const FISMClientInstanceId& InstanceId) const override;
122 ENGINE_API virtual FText GetISMPartitionInstanceTooltip(const FISMClientInstanceId& InstanceId) const override;
123 ENGINE_API virtual bool CanEditISMPartitionInstance(const FISMClientInstanceId& InstanceId) const override;
124 ENGINE_API virtual bool CanMoveISMPartitionInstance(const FISMClientInstanceId& InstanceId, const ETypedElementWorldType InWorldType) const override;
125 ENGINE_API virtual bool GetISMPartitionInstanceTransform(const FISMClientInstanceId& InstanceId, FTransform& OutInstanceTransform, bool bWorldSpace = false) const override;
126 ENGINE_API virtual bool SetISMPartitionInstanceTransform(const FISMClientInstanceId& InstanceId, const FTransform& InstanceTransform, bool bWorldSpace = false, bool bTeleport = false) override;
127 ENGINE_API virtual void NotifyISMPartitionInstanceMovementStarted(const FISMClientInstanceId& InstanceId) override;
128 ENGINE_API virtual void NotifyISMPartitionInstanceMovementOngoing(const FISMClientInstanceId& InstanceId) override;
129 ENGINE_API virtual void NotifyISMPartitionInstanceMovementEnded(const FISMClientInstanceId& InstanceId) override;
130 ENGINE_API virtual void NotifyISMPartitionInstanceSelectionChanged(const FISMClientInstanceId& InstanceId, const bool bIsSelected) override;
131 ENGINE_API virtual bool DeleteISMPartitionInstances(TArrayView<const FISMClientInstanceId> InstanceIds) override;
132 ENGINE_API virtual bool DuplicateISMPartitionInstances(TArrayView<const FISMClientInstanceId> InstanceIds, TArray<FISMClientInstanceId>& OutNewInstanceIds) override;
133};
134
135#endif // WITH_EDITORONLY_DATA
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
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
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
UE::Math::TTransform< double > FTransform
Definition MathFwd.h:53
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
ETypedElementWorldType
Definition TypedElementWorldInterface.h:26
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition InstancedPlacementPartitionActor.h:18
Definition Archive.h:1208
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 InstancedPlacementClientInfo.h:53
Definition Object.h:95
Definition Guid.h:109
Definition ISMPartitionClient.h:10
Definition ISMPartitionClient.h:62
Definition ISMComponentDescriptor.h:257
Definition UnrealType.h:6865
Definition SoftObjectPath.h:56
Definition WeakObjectPtrTemplates.h:25
static CORE_API const TQuat< double > Identity
Definition Quat.h:63
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79
static CORE_API const TVector< double > OneVector
Definition Vector.h:82