Wildmeshing Toolkit
Loading...
Searching...
No Matches
Public Attributes | List of all members
wmtk::components::topological_offset::VertexExtra Class Reference

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
 

Detailed Description

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.

Member Data Documentation

◆ m_born_epoch

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.

◆ m_boundary_mask

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.

◆ m_is_on_input_complex

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.

◆ m_is_on_region

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.


The documentation for this class was generated from the following file: