MeshType

Communicates the geometric guarantees a mesh provides to Solidean

This enum provides some commonly used presets for setting up SurfaceBuilder/MeshBuilder. It is strictly used as convenience. The appropriate builders still provide the most flexibility and nuance.

Signature

// Communicates the geometric guarantees a mesh provides to Solidean
enum MeshType:
    Solid = 0
    Supersolid = 1
    NonSupersolid = 2

Solid

A solid mesh as defined in the manual. No self-intersections are allowed, no overlaps, no inner nested components (though holes are fine). Each surface primitive is actually on the surface of the represented object.

This is the most restricted but also fastest type of mesh.

Supersolid

A supersolid mesh as defined in the manual. Self-intersections and nested components are allowed. Coplanar triangles are allowed. Zero-volume constructs are allowed. Basically every mesh that can be seen as the superposition of (potentially intersecting) solid meshes. In particular, any topologically 2-manifold mesh is supersolid, regardless of its vertex positions.

This is the most permissive but also slowest type of mesh that has well-defined booleans.

NonSupersolid

Any potentially non-supersolid mesh must use this type. It allows for holes, partial surfaces, any non-manifold configuration. Apart from the coordinate limit chosen by ExactArithmetic, there is literally no restriction on the input geometry.

CAUTION: most operations do not accept this type of mesh. The main way to make it usable is via Operation::Heal.