FMeshSelfUnion

MeshSelfUnion perform a "Mesh Boolean" style union of a mesh on itself, resolving any self intersections and welding the new boundaries as needed

Windows
MacOS
Linux

References

Module

DynamicMesh

Header

/Engine/Plugins/Experimental/GeometryProcessing/Source/DynamicMesh/Public/Operations/MeshSelfUnion.h

Include

#include "Operations/MeshSelfUnion.h"

Syntax

class FMeshSelfUnion

Remarks

MeshSelfUnion perform a "Mesh Boolean" style union of a mesh on itself, resolving any self intersections and welding the new boundaries as needed

Variables

Name Description

Public variable

TSet< int32 >

 

AllNewEdges

All edges created by mesh boolean algorithm. Only populated if bTrackAllNewEdges = true

Public variable

bool

 

bCollapseDegenerateEdgesOnCut

InputsWhether to do additional processing to try to remove degenerate edges

Public variable

bool

 

bPreserveOverlayUVs

Prevent simplification from distorting overlay UVs

Public variable

bool

 

bPreserveVertexUVs

Prevent simplification from distorting vertex UVs

Public variable

bool

 

bSimplifyAlongNewEdges

Control whether we attempt to auto-simplify the small planar triangles that the boolean operation tends to generate

Public variable

bool

 

bTrackAllNewEdges

Control whether new edges should be tracked

Public variable

bool

 

bTrimFlaps

Whether to remove visible "open" geometry

Public variable

bool

 

bWeldSharedEdges

Weld newly-created cut edges where the mesh is unioned with itself.

Public variable

TArray< int >

 

CreatedBoundaryEdges

OutputBoundary edges created by the mesh boolean algorithm failing to cleanly weld (doesn't include boundaries that already existed in source mesh)

Public variable

double

 

DegenerateEdgeTolFactor

Tolerance factor (multiplied by SnapTolerance) for removing short edges created by the cutting process; should be no more than 2

Public variable

FDynamicMesh3 &...

 

Mesh

The input mesh, to be modified.

Public variable

double

 

NormalOffset

Amount we nudge samples off the surface when evaluating winding number, to avoid numerical issues

Public variable

FProgressCancel...

 

Progress

Set this to be able to cancel running operation

Public variable

double

 

SimplificationAngleTolerance

Simplification-specific settings (only relevant if bSimplifyAlongNewEdges==true):Degrees of deviation from coplanar that we will still simplify

Public variable

double

 

SnapTolerance

Tolerance distance for considering a point to be on a vertex or edge, especially during mesh-mesh cutting

Public variable

double

 

TryToImproveTriQualityThreshold

If triangle quality (aspect ratio) is worse than this threshold, only simplify in ways that improve quality.

Public variable

float

 

UVDistortTolerance

When preserving UVs, sets maximum allowed change in UV coordinates from collapsing an edge, measured at the removed vertex

Public variable

double

 

WindingThreshold

Threshold to determine whether triangle in one mesh is inside or outside of the other

Constructors

Name Description

Public function

FMeshSelfUnion

(
    FDynamicMesh3* MeshIn
)

Destructors

Name Description

Public function Virtual

~FMeshSelfUnion()

Functions

Name Description

Protected function Virtual

bool

 

Cancelled()

If this returns true, abort computation.

Public function

bool

 

Compute()

Compute the plane cut by splitting mesh edges that cross the cut plane, and then deleting any triangles on the positive side of the cutting plane.

Public function

EOperationVa...

 

Validate()

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss