bSmoothGizmoBrush
bSmoothGizmoBrush
#Overview
name: bSmoothGizmoBrush
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 5
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of bSmoothGizmoBrush is to control the smoothing of edges when using the gizmo brush in the Landscape Editor tool within Unreal Engine 5. It is specifically used for the Copy/Paste tool in landscape editing.
This setting variable is primarily used in the Landscape Editor module of Unreal Engine. It’s referenced in the LandscapeEditor subsystem, particularly in the brush and gizmo-related functionalities.
The value of this variable is set in several places:
- It’s initialized in the ULandscapeEditorObject constructor.
- It can be loaded from and saved to the editor’s project-specific configuration file (GEditorPerProjectIni).
- It’s exposed as an editable property in the Landscape Editor UI, allowing users to toggle it on or off.
This variable interacts with other landscape editing parameters, particularly in the ApplyBrush function of the FLandscapeBrushGizmo class. When enabled, it affects how the gizmo brush is applied to the landscape, creating a smoother transition at the edges of the affected area.
Developers should be aware that:
- This setting affects the visual quality and blending of copied/pasted areas in the landscape.
- It’s specifically relevant for the Copy/Paste tool in landscape editing.
- The setting is persisted between editor sessions, as it’s saved to the project configuration.
Best practices when using this variable include:
- Consider enabling it for more natural-looking transitions when pasting landscape data.
- Be mindful of performance implications, as smoothing operations may have a slight performance cost.
- Experiment with both enabled and disabled states to determine which provides the best results for your specific landscape editing needs.
- Remember to save your editor preferences if you want this setting to persist across sessions.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:758, section: [LandscapeEdit]
- INI Section:
LandscapeEdit
- Raw value:
True
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Editor/LandscapeEditor/Private/LandscapeEdModeBrushes.cpp:838
Scope (from outer to inner):
file
class class FLandscapeBrushGizmo : public FLandscapeBrush
function virtual FLandscapeBrushData ApplyBrush
Source code excerpt:
float PaintAmount = 1.0f;
// Transform in 0,0 origin LW radius
if (EdMode->UISettings->bSmoothGizmoBrush)
{
FVector TransformedLocal(FMath::Abs(GizmoLocal.X - LW), FMath::Abs(GizmoLocal.Y - LH) * (W / H), 0);
float FalloffRadius = LW * EdMode->UISettings->GetCurrentToolBrushFalloff();
float SquareRadius = LW - FalloffRadius;
float Cos = static_cast<float>(FMath::Abs(TransformedLocal.X) / TransformedLocal.Size2D());
float Sin = static_cast<float>(FMath::Abs(TransformedLocal.Y) / TransformedLocal.Size2D());
#Loc: <Workspace>/Engine/Source/Editor/LandscapeEditor/Private/LandscapeEditorObject.cpp:79
Scope (from outer to inner):
file
function ULandscapeEditorObject::ULandscapeEditorObject
Source code excerpt:
, bApplyToAllTargets(true)
, SnapMode(ELandscapeGizmoSnapType::None)
, bSmoothGizmoBrush(true)
, MirrorPoint(FVector::ZeroVector)
, MirrorOp(ELandscapeMirrorOperation::MinusXToPlusX)
, ResizeLandscape_QuadsPerSection(0)
, ResizeLandscape_SectionsPerComponent(0)
#Loc: <Workspace>/Engine/Source/Editor/LandscapeEditor/Private/LandscapeEditorObject.cpp:303
Scope (from outer to inner):
file
function void ULandscapeEditorObject::Load
Source code excerpt:
GConfig->GetFloat(TEXT("LandscapeEdit"), TEXT("MaximumValueRadius"), MaximumValueRadius, GEditorPerProjectIni);
bool InbSmoothGizmoBrush = bSmoothGizmoBrush;
GConfig->GetBool(TEXT("LandscapeEdit"), TEXT("bSmoothGizmoBrush"), InbSmoothGizmoBrush, GEditorPerProjectIni);
bSmoothGizmoBrush = InbSmoothGizmoBrush;
int32 InPasteMode = (int32)ELandscapeToolPasteMode::Both;
GConfig->GetInt(TEXT("LandscapeEdit"), TEXT("PasteMode"), InPasteMode, GEditorPerProjectIni);
//PasteMode = (ELandscapeToolPasteMode)InPasteMode;
SetPasteMode((ELandscapeToolPasteMode)InPasteMode);
#Loc: <Workspace>/Engine/Source/Editor/LandscapeEditor/Private/LandscapeEditorObject.cpp:445
Scope (from outer to inner):
file
function void ULandscapeEditorObject::Save
Source code excerpt:
GConfig->SetFloat(TEXT("LandscapeEdit"), TEXT("MaximumValueRadius"), MaximumValueRadius, GEditorPerProjectIni);
GConfig->SetBool(TEXT("LandscapeEdit"), TEXT("bSmoothGizmoBrush"), bSmoothGizmoBrush, GEditorPerProjectIni);
GConfig->SetInt(TEXT("LandscapeEdit"), TEXT("PasteMode"), (int32)PasteMode, GEditorPerProjectIni);
GConfig->SetInt(TEXT("LandscapeEdit"), TEXT("MirrorOp"), (int32)MirrorOp, GEditorPerProjectIni);
GConfig->SetInt(TEXT("LandscapeEdit"), TEXT("ConvertMode"), (int32)ResizeLandscape_ConvertMode, GEditorPerProjectIni);
//GConfig->SetBool(TEXT("LandscapeEdit"), TEXT("bUseSelectedRegion"), bUseSelectedRegion, GEditorPerProjectIni);
#Loc: <Workspace>/Engine/Source/Editor/LandscapeEditor/Public/LandscapeEditorObject.h:463
Scope (from outer to inner):
file
class class ULandscapeEditorObject : public UObject
Source code excerpt:
// Smooths the edges of the gizmo data into the landscape. Without this, the edges of the pasted data will be sharp
UPROPERTY(Category="Tool Settings", EditAnywhere, NonTransactional, meta=(DisplayName="Use Smooth Gizmo Brush", ShowForTools="CopyPaste"))
bool bSmoothGizmoBrush;
UPROPERTY(Category="Tool Settings", EditAnywhere, NonTransactional, AdvancedDisplay, meta=(DisplayName="Heightmap", ShowForTools="CopyPaste"))
FString GizmoHeightmapFilenameString;
UPROPERTY(Category="Tool Settings", EditAnywhere, NonTransactional, AdvancedDisplay, meta=(DisplayName="Heightmap Size", ShowForTools="CopyPaste"))
FIntPoint GizmoImportSize;