|
Wildmeshing Toolkit
|
Per-vertex data the shared 3D optimizer knows nothing about. More...
#include <TopoOffsetTetMesh.h>
Public Attributes | |
| int | label = 0 |
| size_t | component_id = 0 |
| bool | m_is_on_input = false |
| bool | m_is_on_offset = false |
| bool | m_is_on_region = false |
| Vector3d | m_turn_start = Vector3d::Zero() |
| bool | m_turn_start_valid = false |
| uint64_t | m_boundary_mask = 0 |
| Which tag boundaries this vertex lies on – one bit per input tag, ambient included. See TopoOffsetTetMesh::m_tag_envelopes for what the bits dispatch to. | |
| uint32_t | m_born_epoch = 0 |
Per-vertex data the shared 3D optimizer knows nothing about.
Position, rounding, bbox membership, order, sizing and partition live on wmtk::TetOptimizerMesh::VertexAttributes. The three flags here say which tracked surface a vertex belongs to; the base's m_is_on_surface is their union, and they are not exclusive – a vertex where the offset surface meets another region's boundary carries both. The 2D twin is VertexExtra2d.
| uint32_t wmtk::components::topological_offset::VertexExtra::m_born_epoch = 0 |
Churn instrumentation: which split pass created this vertex, from wmtk::TetOptimizerMesh::m_op_epoch; 0 means not created by an optimization split. Read only by collapse_after_vertex(). Assigned at each split, never OR'd – a recycled slot carries a dead vertex's epoch.
| uint64_t wmtk::components::topological_offset::VertexExtra::m_boundary_mask = 0 |
Which tag boundaries this vertex lies on – one bit per input tag, ambient included. See TopoOffsetTetMesh::m_tag_envelopes for what the bits dispatch to.
Seeded in init_surfaces_and_boundaries() from the input partition, then propagated by the operations: a split's new vertex takes the AND of its endpoints (it lies on a boundary only if the whole edge did), a collapse's survivor the OR (it carries both vertices' geometry).
| Vector3d wmtk::components::topological_offset::VertexExtra::m_turn_start = Vector3d::Zero() |
Where this vertex stood at the start of the turn. Written every turn (and before the pre_smooth block); read by nothing since the per-vertex convergence states were removed.