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 |
Triangle Geometry – the surface mesh to process, typically produced by Create Surface Mesh (Surface Nets) or Create Surface Mesh (QuickMesh).
Node Types – the per-vertex node classification array, produced by the same surface-meshing filter that created the 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 |
License & Copyright
Please see the description file distributed with this Plugin
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.