UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Brush.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"
8#include "Brush.generated.h"
9
10class UBrushBuilder;
11class ULevel;
12
13//-----------------------------------------------------------------------------
14// Variables.
15UENUM()
31
32
33UENUM()
35{
39 Brush_Add UMETA(DisplayName=Additive),
41 Brush_Subtract UMETA(DisplayName=Subtractive),
43};
44
45
46// Selection information for geometry mode
47USTRUCT()
49{
51
52 UPROPERTY()
53 int32 Type; // EGeometrySelectionType_
54
55 UPROPERTY()
56 int32 Index; // Index into the geometry data structures
57
58 UPROPERTY()
59 int32 SelectionIndex; // The selection index of this item
60
61
63 : Type(0)
64 , Index(0)
65 , SelectionIndex(0)
66 { }
67
69 {
70 return Ar << MyGeomSelection.Type << MyGeomSelection.Index << MyGeomSelection.SelectionIndex;
71 }
72};
73
74
75UCLASS(hidecategories=(Object, Collision, Display, Rendering, Physics, Input, Blueprint), showcategories=("Input|MouseInput", "Input|TouchInput"), NotBlueprintable, ConversionRoot, MinimalAPI)
76class ABrush
77 : public AActor
78{
80
81
82 UPROPERTY(EditAnywhere, Category=Brush, meta = (NoResetToDefault))
84
85 // Information.
86 UPROPERTY()
87 FColor BrushColor;
88
89 UPROPERTY()
90 int32 PolyFlags;
91
92 UPROPERTY()
94
95 UPROPERTY()
96 uint32 bSolidWhenSelected:1;
97
99 UPROPERTY()
101
103 UPROPERTY()
105
106 UPROPERTY(Instanced)
107 TObjectPtr<class UModel> Brush;
108
109private:
110 UPROPERTY(Category = Collision, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
111 TObjectPtr<class UBrushComponent> BrushComponent;
112public:
113
114#if WITH_EDITORONLY_DATA
115 UPROPERTY(VisibleAnywhere, Instanced, Category=BrushBuilder)
117
119 UPROPERTY(Transient, EditAnywhere, Category=BrushSettings)
121
123 UPROPERTY(Transient, EditAnywhere, Category=BrushSettings, meta=(ClampMin=0.0, ClampMax=1.0))
125#endif
126
128 UPROPERTY()
129 uint32 bInManipulation:1;
130
135 UPROPERTY()
137
138#if WITH_EDITOR
143 {
144 return OnBrushRegistered;
145 }
146#endif
147
148public:
149
150 // UObject interface.
151#if WITH_EDITOR
152 ENGINE_API virtual void PostLoad() override;
153 ENGINE_API virtual void PostEditMove(bool bFinished) override;
154 ENGINE_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
155 ENGINE_API virtual void PostEditChangeChainProperty(FPropertyChangedChainEvent& PropertyChangedEvent) override;
156 ENGINE_API virtual FName GetCustomIconName() const override;
157 ENGINE_API virtual bool Modify(bool bAlwaysMarkDirty = true) override;
158#endif // WITH_EDITOR
159
160 virtual bool NeedsLoadForClient() const override
161 {
162 return !IsNotForClientOrServer() && Super::NeedsLoadForClient();
163 }
164
165 virtual bool NeedsLoadForServer() const override
166 {
167 return !IsNotForClientOrServer() && Super::NeedsLoadForServer();
168 }
169
170public:
171
172 // AActor interface
173 ENGINE_API virtual bool IsLevelBoundsRelevant() const override;
175 ENGINE_API virtual void RebuildNavigationData();
176
177#if WITH_EDITOR
178 ENGINE_API virtual void Destroyed() override;
179 ENGINE_API virtual void PostRegisterAllComponents() override;
180 ENGINE_API virtual void CheckForErrors() override;
181 ENGINE_API virtual void SetIsTemporarilyHiddenInEditor( bool bIsHidden ) override;
182 ENGINE_API virtual bool SetIsHiddenEdLayer(bool bIsHiddenEdLayer) override;
183 ENGINE_API virtual bool SupportsLayers() const override;
184 ENGINE_API virtual bool SupportsExternalPackaging() const override;
185 ENGINE_API virtual bool CanDeleteSelectedActor(FText& OutReason) const override;
186 ENGINE_API virtual bool CanReplaceSelectedActor(FText& OutReason) const override;
187 ENGINE_API virtual bool IsActorLabelEditable() const override;
188public:
189
190 ENGINE_API virtual void InitPosRotScale();
191 ENGINE_API virtual void CopyPosRotScaleFrom( ABrush* Other );
192
194 bool ENGINE_API CanEverAffectBSP() const;
195
198
201private:
202
205
208
211
212public:
213
220 static ENGINE_API bool NeedsRebuild(TArray< TWeakObjectPtr< ULevel > >* OutLevels = nullptr);
221
225 static void OnRebuildDone()
226 {
227 LevelsToRebuild.Empty();
228 }
229
236#endif//WITH_EDITOR
237
239 ENGINE_API virtual bool IsStaticBrush() const;
240
242 virtual bool IsVolumeBrush() const { return false; }
243
245 virtual bool IsBrushShape() const { return false; }
246
247 // ABrush interface.
248
250 ENGINE_API virtual FColor GetWireColor() const;
251
257 inline bool IsNotForClientOrServer() const
258 {
260 }
261
263 inline void SetNotForClientOrServer()
264 {
266 }
267
269 inline void ClearNotForClientOrServer()
270 {
271 bNotForClientOrServer = false;
272 }
273
274#if WITH_EDITORONLY_DATA
276 const UBrushBuilder* GetBrushBuilder() const { return BrushBuilder; }
277#endif
278
279public:
281 class UBrushComponent* GetBrushComponent() const { return BrushComponent; }
282
283#if WITH_EDITOR
286#endif
287};
ECsgOper
Definition Brush.h:17
@ CSG_Intersect
Definition Brush.h:25
@ CSG_Subtract
Definition Brush.h:23
@ CSG_Deintersect
Definition Brush.h:27
@ CSG_MAX
Definition Brush.h:29
@ CSG_Active
Definition Brush.h:19
@ CSG_Add
Definition Brush.h:21
@ CSG_None
Definition Brush.h:28
EBrushType
Definition Brush.h:35
@ UMETA
Definition Brush.h:37
@ Brush_MAX
Definition Brush.h:42
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
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 DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
DIRECTLINK_API Display
Definition DirectLinkLog.h:8
return true
Definition ExternalRpcRegistry.cpp:601
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
virtual ENGINE_API void PostRegisterAllComponents()
Definition Actor.cpp:4107
virtual ENGINE_API void PostLoad() override
Definition Actor.cpp:1103
virtual bool IsLevelBoundsRelevant() const
Definition Actor.h:2558
virtual bool IsComponentRelevantForNavigation(UActorComponent *Component) const
Definition Actor.h:4382
virtual ENGINE_API void Destroyed()
Definition Actor.cpp:3284
Definition Archive.h:1208
Definition NameTypes.h:617
Definition Text.h:385
Definition Array.h:670
Definition EnumAsByte.h:22
Definition ActorComponent.h:152
Definition BrushBuilder.h:54
Definition Level.h:423
Definition Model.h:401
virtual COREUOBJECT_API bool NeedsLoadForClient() const
Definition Obj.cpp:992
UE_FORCEINLINE_HINT bool Modify(bool bAlwaysMarkDirty=true)
Definition Object.h:317
virtual COREUOBJECT_API bool NeedsLoadForServer() const
Definition Obj.cpp:977
U16 Index
Definition radfft.cpp:71
Definition Color.h:486
Definition Brush.h:49
friend FArchive & operator<<(FArchive &Ar, FGeomSelection &MyGeomSelection)
Definition Brush.h:68
Definition UnrealType.h:7001
Definition UnrealType.h:6865
Definition ObjectPtr.h:488