MeshBooleanOptions

MeshSplitOptionsReferences
Contains a set of data to pass to boolean options.

Properties

CancellationToken

public CancellationToken CancellationToken { get; set; }
A token that allows to request the cancellation of the operation.
inherited fromMeshSplitOptions

CompleteOpenCuts

public bool CompleteOpenCuts { get; set; }

Gets or sets whether cuts that stop inside the mesh are completed.

An intersection curve that stops inside the mesh does not separate one side from the other, so the mesh is returned whole. When this is enabled, each such open end is joined to the nearest border of the mesh, or to another cut, by the shortest path along existing edges or straight across a quad or an n-gon between two of its vertices.

This yields a best-effort cut where the intersection alone leaves the answer undetermined: the added stretch follows the mesh rather than the cutter, so it is not an intersection result. No vertex is added or moved; faces crossed straight are re-tiled from their own vertices. Cuts that already close, or that already run from border to border, are unaffected.

inherited fromMeshSplitOptions
The default value is false.

CreateNgons

public bool CreateNgons { get; set; }
Gets or sets whether ngons are created along the split ridge, to preserve the boundary look.
inherited fromMeshSplitOptions
The default value is true.

FailedInputPairs

#Since v9.0
public IndexPair[] FailedInputPairs { get; }
Gets the pairs of input meshes whose operation with each other could not be computed. Indices count the non-null input meshes; for the two-set operations the second set is counted after the first, and a union pair is listed only when its meshes ended in different results. Empty when there were none, null when RequestReport was disabled.

OpenCutEnds

public Point3d[] OpenCutEnds { get; }
Gets the ends of the intersections that stop inside a mesh, as found by the last operation that used these options: empty when there were none, null when MeshSplitOptions.RequestOpenCutEnds was disabled.
inherited fromMeshSplitOptions

OpenResults

#Since v9.0
public int[] OpenResults { get; }
Gets the indices of the results that have naked edges although no input mesh had any: empty when there were none, null when RequestReport was disabled.

ProgressReporter

public IProgress<double> ProgressReporter { get; set; }
Gets or sets the object that is responsible to keep track of calculation progression.
inherited fromMeshSplitOptions

RequestOpenCutEnds

public bool RequestOpenCutEnds { get; set; }

Gets or sets whether the operation reports where intersections stop inside a mesh it splits.

Such a cut separates nothing. When this is enabled, MeshSplitOptions.OpenCutEnds holds the ends of those cuts after the call. Nothing is computed when it is disabled.

inherited fromMeshSplitOptions
The default value is false.

RequestReport

#Since v9.0
public bool RequestReport { get; set; }

Gets or sets whether the operation reports the work it could not do.

When this is enabled, UnmergedResultPairs, OpenResults and FailedInputPairs hold what the last operation that used these options found. Nothing is collected when it is disabled.

The default value is false.

ResolveSelfIntersections

#Since v9.0
public bool ResolveSelfIntersections { get; set; }

Gets or sets whether union, difference and intersection first read an input mesh that intersects itself, or whose closed parts nest in each other or are wound inside out, as the solid it encloses.

When this is disabled, such inputs are still resolved when the result computed from the inputs as given has naked or non-manifold edges it should not have, or could not be computed, and the result from the resolved inputs has neither. Splitting is not affected.

The default value is false.

SplitAtCoplanar

public bool SplitAtCoplanar { get; set; }
Gets or sets whether coplanar areas are separated. If false, coplanar areas will not be separated.
inherited fromMeshSplitOptions
The default value is true.

TextLog

public TextLog TextLog { get; set; }
Gets or sets a text log to write computed operations into.
inherited fromMeshSplitOptions

Tolerance

public double Tolerance { get; set; }
Gets or sets a tolerance value for intersections and overlaps. Intersection.MeshIntersectionsTolerancesCoefficient
inherited fromMeshSplitOptions
The default value is RhinoMath.ZeroTolerance*10. However, this is only a reference value for testing and geometry developers should generally use the document tolerance, multiplied by Intersection.MeshIntersectionsTolerancesCoefficient.

UnmergedResultPairs

#Since v9.0
public IndexPair[] UnmergedResultPairs { get; }
Gets the pairs of union results that were left apart because joining them would have left naked edges, as indices into the results: empty when there were none, null when RequestReport was disabled.