EPolyEditExtrudeModeOptions

There is a lot of overlap in the options for Extrude, Offset, and Push/Pull, and they map to the same op behind the scenes.

Choose your operating system:

Windows

macOS

Linux

References

Module

MeshModelingTools

Header

/Engine/Plugins/Runtime/MeshModelingToolset/Source/MeshModelingTools/Public/ToolActivities/PolyEditExtrudeActivity.h

Include

#include "ToolActivities/PolyEditExtrudeActivity.h"

Syntax

enum EPolyEditExtrudeModeOptions
{
    SingleDirection                = static_cast(UE::Geometry::FExtrudeOp::EDirectionMode::SingleDirection),
    SelectedTriangleNormals        = static_cast(UE::Geometry::FExtrudeOp::EDirectionMode::SelectedTriangleNormals),
    SelectedTriangleNormalsEven    = static_cast(UE::Geometry::FExtrudeOp::EDirectionMode::SelectedTriangleNormalsEven),
}

Values

Name

Description

SingleDirection

Extrude all triangles in the same direction regardless of their facing.

SelectedTriangleNormals

Take the angle-weighed average of the selected triangles around each extruded vertex to determine vertex movement direction.

SelectedTriangleNormalsEven

Like Selected Triangle Normals, but also adjusts the distances moved in an attempt to keep triangles parallel to their original facing.

Remarks

There is a lot of overlap in the options for Extrude, Offset, and Push/Pull, and they map to the same op behind the scenes. However, we want to keep them as separate buttons to keep some amount of shallowness in the UI, to make it more likely that new users will find the setting they are looking for. A couple of settings are entirely replicated: namely, doing an offset or "extrude" with SelectedTriangleNormals or SelectedTriangleNormalsEven as the movement direction is actually equivalent. Properly speaking, these two should only be options under Offset, not Extrude, but we keep them as (non-default) options in both because an "extrude along local normals" is a common operation that some users are likely to look for under extrude, regardless of it not lining up with the physical meaning of extrusion. We use different property set objects so that we can customize category names, etc, as well as have different defaults and saved settings.