Navigation
API > API/Runtime > API/Runtime/GeometryCore
MeshBoolean perform a boolean operation on two input meshes.
| Name | FMeshBoolean |
| Type | class |
| Header File | /Engine/Source/Runtime/GeometryCore/Public/Operations/MeshBoolean.h |
| Include Path | #include "Operations/MeshBoolean.h" |
Syntax
class FMeshBoolean
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FMeshBoolean
(
const FDynamicMesh3* MeshA, |
Operations/MeshBoolean.h | ||
FMeshBoolean
(
const FDynamicMesh3* MeshA, |
Perform a boolean operation to combine two meshes into a provided output mesh. | Operations/MeshBoolean.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FMeshBoolean() |
Operations/MeshBoolean.h |
Enums
Public
| Name | Remarks |
|---|---|
| EBooleanOp |
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/MeshBoolean.h | |
| bCollapseDegenerateEdgesOnCut | bool | Whether to do additional processing to try to remove degenerate edges | Operations/MeshBoolean.h | |
| bPopulateSecondMeshGroupMap | bool | When doing an operation that merges two meshes (Union, Difference, Intersect) and bPopulateSecondMeshGroupMap is true, we populate a map from group ID's in the second mesh to group ID's in the result. | Operations/MeshBoolean.h | |
| bPreserveOverlayUVs | bool | Prevent simplification from distorting overlay UVs | Operations/MeshBoolean.h | |
| bPreserveTriangleGroups | bool | Prevent simplification from distorting triangle groups | Operations/MeshBoolean.h | |
| bPreserveVertexNormals | bool | Prevent simplification from distorting vertex normals | Operations/MeshBoolean.h | |
| bPreserveVertexUVs | bool | Prevent simplification from distorting vertex UVs | Operations/MeshBoolean.h | |
| bPutResultInInputSpace | bool | Put the Result mesh in the same space as the input. | Operations/MeshBoolean.h | |
| bSimplifyAlongNewEdges | bool | Control whether we attempt to auto-simplify the small planar triangles that the boolean operation tends to generate | Operations/MeshBoolean.h | |
| bTrackAllNewEdges | bool | Control whether new edges should be tracked | Operations/MeshBoolean.h | |
| bWeldSharedEdges | bool | Weld newly-created cut edges where the input meshes meet. | Operations/MeshBoolean.h | |
| CreatedBoundaryEdges | TArray< int > | Boundary edges created by the mesh boolean algorithm failing to cleanly weld (doesn't include boundaries that already existed in source meshes) | Operations/MeshBoolean.h | |
| DegenerateEdgeTolFactor | double | Tolerance factor (multiplied by SnapTolerance) for removing short edges created by the cutting process; should be no more than 2 | Operations/MeshBoolean.h | |
| Meshes | const FDynamicMesh3 * | Inputs | Operations/MeshBoolean.h | |
| NormalDistortTolerance | float | When preserving normals, sets maximum allowed change in normals from collapsing an edge, measured at the removed vertex in degrees | Operations/MeshBoolean.h | |
| Operation | EBooleanOp | Operations/MeshBoolean.h | ||
| PreserveUVsOnlyForMesh | int | If > -1, then only preserve the UVs of one of the input meshes. | Operations/MeshBoolean.h | |
| Progress | FProgressCancel * | Set this to be able to cancel running operation | Operations/MeshBoolean.h | |
| Result | FDynamicMesh3 * | An existing mesh, to be filled with the boolean result. | Operations/MeshBoolean.h | |
| ResultTransform | FTransformSRT3d | Output Transform taking the result mesh back to the original space of the inputs | Operations/MeshBoolean.h | |
| SecondMeshGroupMap | FIndexMapi | Operations/MeshBoolean.h | ||
| SimplificationAngleTolerance | double | Simplification-specific settings (only relevant if bSimplifyAlongNewEdges==true): Degrees of deviation from coplanar that we will still simplify | Operations/MeshBoolean.h | |
| SnapTolerance | double | Tolerance distance for considering a point to be on a vertex or edge, especially during mesh-mesh cutting | Operations/MeshBoolean.h | |
| Transforms | const FTransformSRT3d | Operations/MeshBoolean.h | ||
| TryToImproveTriQualityThreshold | double | If triangle quality (aspect ratio) is worse than this threshold, only simplify in ways that improve quality. | Operations/MeshBoolean.h | |
| UVDistortTolerance | float | When preserving UVs, sets maximum allowed change in UV coordinates from collapsing an edge, measured at the removed vertex | Operations/MeshBoolean.h | |
| WindingThreshold | double | Threshold to determine whether triangle in one mesh is inside or outside of the other | Operations/MeshBoolean.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool Compute() |
Compute the Boolean operation | Operations/MeshBoolean.h | |
EOperationValidationResult Validate() |
Operations/MeshBoolean.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool Cancelled() |
If this returns true, abort computation. | Operations/MeshBoolean.h |