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