/Engine/Plugins/Runtime/GeometryProcessing/Source/DynamicMesh/Public/Operations/MeshPlaneCut.h
Algorithm is: 1) find all edge crossings 2) optionally discard any triangles with all vertex distances < epsilon. 3) Do edge splits at crossings 4 option a) (optionally) delete all vertices on positive side 4 option b) (OR optionally) disconnect all triangles w/ vertices on positive side (if keeping both sides) 4 option c) do nothing (if keeping both sides and not disconnecting them) 5) (optionally) collapse any degenerate boundary edges 6) (optionally) change an attribute tag for all triangles on positive side 7) find loops through valid boundary edges (ie connected to splits, or on-plane edges) (if second half was kept, do this separately for each separate mesh ID label)
class FMeshPlaneCut
bool
bCollapseDegenerateEdgesOnCut
bool
bSimplifyAlongNewEdges
Control whether we attempt to auto-simplify the small planar triangles that the plane cut operation tends to generate
double
DegenerateEdgeTol
TUniqueFunction...
EdgeFilterFunc
If set, only edges that pass this filter will be split
TArray<TArray<...
HoleFillTriangles
Triangle IDs of hole fill triangles. Outer array is 1:1 with the OpenBoundaries array.
FDynamicMesh3&...
Mesh
Inputs
TArray<FOpenBo...
OpenBoundaries
Note: loops and spans within a singleFOpenBoundarycould be part of the same hole-fill triangulation separate open boundary structs will be considered separately and will not share hole fill triangles
FVector3d
PlaneNormal
FVector3d
PlaneOrigin
double
PlaneTolerance
Tolerance distance for considering a vertex to be 'on plane'
TArray<FCutRes...
ResultRegions
List of output cut regions (eg that have separate GroupIDs).
FLocalPlanarSim...
SimplifySettings
Settings to apply if bSimplifyAlongNewEdges == true
float
UVScaleFactor
UVs on any hole fill surfaces are scaled by this amount