// 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 ); };