Files
UnrealEngine/Engine/Source/Editor/UnrealEd/Classes/Builders/CubeBuilder.h
2025-05-18 13:04:45 +08:00

68 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
/**
* CubeBuilder: Builds a 3D cube brush.
*/
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UObjectGlobals.h"
#include "Builders/EditorBrushBuilder.h"
#include "CubeBuilder.generated.h"
class ABrush;
UCLASS(MinimalAPI, autoexpandcategories=BrushSettings, EditInlineNew, meta=(DisplayName="Box"))
class UCubeBuilder : public UEditorBrushBuilder
{
public:
GENERATED_BODY()
public:
UCubeBuilder(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get());
/** The size of the cube in the X dimension */
UPROPERTY(EditAnywhere, Category=BrushSettings, meta=(ClampMin = "0.000001"))
float X;
/** The size of the cube in the Y dimension */
UPROPERTY(EditAnywhere, Category=BrushSettings, meta=(ClampMin = "0.000001"))
float Y;
/** The size of the cube in the Z dimension */
UPROPERTY(EditAnywhere, Category=BrushSettings, meta=(ClampMin = "0.000001"))
float Z;
/** The thickness of the cube wall when hollow */
UPROPERTY(EditAnywhere, Category=BrushSettings, meta=(EditCondition="Hollow"))
float WallThickness;
UPROPERTY()
FName GroupName;
/** Whether this is a hollow or solid cube */
UPROPERTY(EditAnywhere, Category=BrushSettings)
uint32 Hollow:1;
/** Whether extra internal faces should be generated for each cube face */
UPROPERTY(EditAnywhere, Category=BrushSettings)
uint32 Tessellated:1;
//~ Begin UObject Interface
virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
//~ End UObject Interface
//~ Begin UBrushBuilder Interface
virtual bool Build( UWorld* InWorld, ABrush* InBrush = NULL ) override;
//~ End UBrushBuilder Interface
// @todo document
virtual void BuildCube( int32 Direction, float dx, float dy, float dz, bool _tessellated );
};