10.84. Extract Internal Surfaces From Triangle Geometry

Group (Subgroup)

Geometry

Description

This Filter extracts any Triangles from the supplied Triangle Geometry that contain any internal nodes, then uses these extracted Triangles to create a new Data Container with the reduced Triangle Geometry. This operation is the same as removing all Triangles that only lie of the outer surface of the supplied Triangle Geometry. Internal surfaces can be identified two ways, chosen with the Internal Surface Criterion parameter below.

Node Type Range Criterion

With the Node Type Range criterion, the user must supply a “Node Type” Vertex Attribute Array that defines the type for each node of the Triangle Geometry. All three surface meshing Filters (Create Surface Mesh (QuickMesh), Create Surface Mesh (Surface Nets), and Create Surface Mesh (M3C)) emit Node Types in the same convention:

Id Value

Node Type

2

Normal Vertex

3

Triple Line

4

Quadruple Point (four or more Features meet)

12

Normal Vertex on the outer surface of the bounding box

13

Triple Line on the outer surface of the bounding box

14

Quadruple Point on the outer surface of the bounding box

The value is the number of distinct Features meeting at the node, capped at 4, plus 10 when the node lies on the bounding box wall. The region outside the volume counts as one of those owners, which is why an ordinary vertex on the wall between the exterior and a single Feature is 12 — two owners, one of them the exterior — rather than 11.

This Filter removes any Triangle that contains only Vertices whose node Id values fall outside the minimum and maximum that the user sets.

It is unknown until runtime how the Geometry will be changed by removing certain Vertices and Triangles.

Choosing a Criterion

Node Type Range keeps a triangle only when all three of its nodes have a Node Type inside the given range. Because every node on the bounding box wall is promoted by 10, this also discards internal boundary triangles that merely touch the wall — leaving a one-triangle-wide gap wherever an internal surface meets the box. A Feature flush with the box wall will come out open.

Face Labels instead discards only the faces whose Face Labels are {-1, 0}: the bounding box wall where it borders the background. Faces where the wall caps a real Feature are kept, so Features flush with the box stay closed, and no rim is eroded. This is the same rule as the Bounding Box Skin option’s Background-Backed Walls Only mode on the surface meshing filters, and is the better choice for meshes that already exist.

Input Triangle Geometry

Parameter Name

Parameter Type

Parameter Notes

Description

Triangle Geometry

Geometry Selection

Triangle

Path to the existing Triangle Geometry

Input Vertex Data

Parameter Name

Parameter Type

Parameter Notes

Description

Internal Surface Criterion

Choices

How an internal surface is identified. ‘Node Type Range’ keeps triangles whose three nodes all fall inside the Node Type range; this also removes a one-triangle-wide rim wherever an internal surface meets the bounding box. ‘Face Labels’ removes only the bounding box wall backed by the background (Feature Id 0), which leaves Features flush with the box closed.

Node Types Array

Array Selection

Allowed Types: int8 Comp. Shape: 1

Path to the Node Types array

Internal Surface Node Type Min & Max

Vector of Int8 Values

Order=Min,Max

The min and max (inclusive) Node Type values that distinguish an internal surface from an external surface

Face Labels Array

Array Selection

Allowed Types: int32 Comp. Shape: 2

Path to the Face Labels array

Output Data Object(s)

Parameter Name

Parameter Type

Parameter Notes

Description

Created Triangle Geometry Path

DataGroupCreation

Path to create the new Triangle Geometry

Vertex Data Attribute Matrix

DataObjectName

Created vertex data AttributeMatrix name

Face Data Attribute Matrix

DataObjectName

Created face data AttributeMatrix name

Optional Transferred Data

Parameter Name

Parameter Type

Parameter Notes

Description

Copy Vertex Arrays

MultiArraySelection

Paths to vertex-related DataArrays that should be copied to the new geometry

Copy Face Arrays

MultiArraySelection

Paths to face-related DataArrays that should be copied to the new geometry

Input Triangle Geometry

Parameter Name

Parameter Type

Parameter Notes

Description

Triangle Geometry

Geometry Selection

Triangle

Path to the existing Triangle Geometry

Input Vertex Data

Parameter Name

Parameter Type

Parameter Notes

Description

Internal Surface Criterion

Choices

How an internal surface is identified. ‘Node Type Range’ keeps triangles whose three nodes all fall inside the Node Type range; this also removes a one-triangle-wide rim wherever an internal surface meets the bounding box. ‘Face Labels’ removes only the bounding box wall backed by the background (Feature Id 0), which leaves Features flush with the box closed.

Node Types Array

Array Selection

Allowed Types: int8 Comp. Shape: 1

Path to the Node Types array

Internal Surface Node Type Min & Max

Vector of Int8 Values

Order=Min,Max

The min and max (inclusive) Node Type values that distinguish an internal surface from an external surface

Face Labels Array

Array Selection

Allowed Types: int32 Comp. Shape: 2

Path to the Face Labels array

Output Data Object(s)

Parameter Name

Parameter Type

Parameter Notes

Description

Created Triangle Geometry Path

DataGroupCreation

Path to create the new Triangle Geometry

Vertex Data Attribute Matrix

DataObjectName

Created vertex data AttributeMatrix name

Face Data Attribute Matrix

DataObjectName

Created face data AttributeMatrix name

Optional Transferred Data

Parameter Name

Parameter Type

Parameter Notes

Description

Copy Vertex Arrays

MultiArraySelection

Paths to vertex-related DataArrays that should be copied to the new geometry

Copy Face Arrays

MultiArraySelection

Paths to face-related DataArrays that should be copied to the new geometry

DREAM3D-NX Help

If you need help, need to file a bug report or want to request a new feature, please head over to the DREAM3DNX-Issues GitHub site where the community of DREAM3D-NX users can help answer your questions.