Navigation
API > API/Runtime > API/Runtime/GeometryCore > API/Runtime/GeometryCore/Operations
References
| Module | GeometryCore |
| Header | /Engine/Source/Runtime/GeometryCore/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
| Type | Name | Description | |
|---|---|---|---|
| TSet< int32 > | AllNewEdges | All edges created by mesh boolean algorithm. Only populated if bTrackAllNewEdges = true | |
| bool | bCollapseDegenerateEdgesOnCut | InputsWhether to do additional processing to try to remove degenerate edges | |
| bool | bPreserveOverlayUVs | Prevent simplification from distorting overlay UVs | |
| bool | bPreserveTriangleGroups | Prevent simplification from distorting triangle groups | |
| bool | bPreserveVertexNormals | Prevent simplification from distorting vertex normals | |
| bool | bPreserveVertexUVs | Prevent simplification from distorting vertex UVs | |
| bool | bSimplifyAlongNewEdges | Control whether we attempt to auto-simplify the small planar triangles that the boolean operation tends to generate | |
| bool | bTrackAllNewEdges | Control whether new edges should be tracked | |
| bool | bTrimFlaps | Whether to remove visible "open" geometry | |
| bool | bWeldSharedEdges | Weld newly-created cut edges where the mesh is unioned with itself. | |
| 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) | |
| double | DegenerateEdgeTolFactor | Tolerance factor (multiplied by SnapTolerance) for removing short edges created by the cutting process; should be no more than 2 | |
| FDynamicMesh3 * | Mesh | The input mesh, to be modified. | |
| float | NormalDistortTolerance | When preserving normals, sets maximum allowed change in normals from collapsing an edge, measured at the removed vertex in degrees | |
| double | NormalOffset | Amount we nudge samples off the surface when evaluating winding number, to avoid numerical issues | |
| FProgressCancel * | Progress | Set this to be able to cancel running operation | |
| double | SimplificationAngleTolerance | Simplification-specific settings (only relevant if bSimplifyAlongNewEdges==true):Degrees of deviation from coplanar that we will still simplify | |
| double | SnapTolerance | Tolerance distance for considering a point to be on a vertex or edge, especially during mesh-mesh cutting | |
| double | TryToImproveTriQualityThreshold | If triangle quality (aspect ratio) is worse than this threshold, only simplify in ways that improve quality. | |
| float | UVDistortTolerance | When preserving UVs, sets maximum allowed change in UV coordinates from collapsing an edge, measured at the removed vertex | |
| double | WindingThreshold | Threshold to determine whether triangle in one mesh is inside or outside of the other |
Constructors
| Type | Name | Description | |
|---|---|---|---|
FMeshSelfUnion
(
FDynamicMesh3* MeshIn |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | Cancelled () |
If this returns true, abort computation. | |
| 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. | |
| EOperationValidationResult | Validate () |