|
Wildmeshing Toolkit
|
Per-vertex data the shared optimizer knows nothing about. More...
#include <TopoOffsetTetMesh.h>
Public Attributes | |
| int | label = 0 |
| size_t | component_id = 0 |
| bool | m_is_on_region = false |
| bool | m_is_on_offset = false |
| bool | m_is_on_input_complex = false |
| uint64_t | m_boundary_mask = 0 |
| uint32_t | m_born_epoch = 0 |
Per-vertex data the shared optimizer knows nothing about.
Position, rounding, bbox, order, sizing and partition live on the base's VertexAttributes; this carries only the offset's own, registered with m_vertex_attr_group so it is resized, protected and rolled back with them. The offset tracks two surfaces: the base's m_is_on_surface is their union; m_is_on_region / m_is_on_offset say which.
| uint32_t wmtk::components::topological_offset::VertexExtra::m_born_epoch = 0 |
Which split pass created this vertex, 0 if no optimization split did. Churn instrumentation only; nothing reads it to make a decision. Assigned, never OR'd or left alone: v_id may be a recycled slot still carrying a dead vertex's epoch. Zero also covers the construction-era vertices, which predate every split pass.
| uint64_t wmtk::components::topological_offset::VertexExtra::m_boundary_mask = 0 |
Which tag-region boundaries this vertex lies on, one bit per input tag (m_tag_bit).
Seeded at init from the boundary faces; a split midpoint ANDs its edge's endpoints, a collapse survivor ORs in the removed vertex's bits. A face's mask is the AND of its three corners', which is what envelope_for_mask() dispatches on. Never recomputed from current tet tags, so the band's tag rewriting during construction cannot corrupt it.
| bool wmtk::components::topological_offset::VertexExtra::m_is_on_input_complex = false |
On the input complex itself – the simplices label_input_complex() selected, at every dimension. A vertex is never on the input complex and the offset surface at once; check_no_vertex_on_both_surfaces() asserts it, and collapse_before_vertex() refuses the merge that could manufacture it. Propagated like the flags above: a split midpoint ANDs its edge's endpoints, a collapse ORs onto the survivor.
| bool wmtk::components::topological_offset::VertexExtra::m_is_on_region = false |
On a region boundary that is not the offset surface. The whole family – this flag, is_edge_on_region(), face_is_region() – means "region boundary"; 3D has no INPUT_SURFACE_CLASS to narrow it with the way 2D does.