|
Wildmeshing Toolkit
|
Per-vertex data the shared 3D optimizer knows nothing about. More...
#include <TopoOffsetTetMesh.h>
Public Attributes | |
| int | label = 0 |
| bool | m_is_on_input = false |
| bool | m_is_on_offset = false |
| bool | m_is_on_region = false |
| int64_t | m_corr_input_vid = -1 |
| uint32_t | m_born_epoch = 0 |
| double | m_front_change = 0. |
| int | m_front_change_group = -1 |
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 |
Which split pass created this vertex, from wmtk::TetOptimizerMesh::m_op_epoch; 0 means not created by an optimization split. Read only by the needle diagnostics' per-vertex lines. Assigned at each split, never OR'd – a recycled slot carries a dead vertex's epoch.
| int64_t wmtk::components::topological_offset::VertexExtra::m_corr_input_vid = -1 |
The input-complex vertex this offset vertex was split off from by marching_tets(): the marched edge's endpoint on the complex. -1 for every vertex the march did not make. Written into the output .msh by save_offset_correspondence; not maintained by the optimization. The 2D twin is VertexExtra2d::m_corr_input_vid.
| double wmtk::components::topological_offset::VertexExtra::m_front_change = 0. |
How much the vertex's latest front solve changed its own error, |r(after) - r(before)| / front_conv_frac() (r = relative_residual()), in bars – 0 for a move that was refused and rolled back – and the operation group that solve ran in (TopoOffsetTetMesh::m_smooth_group; -1 = none yet). The debug frames' front_last_change.