#[non_exhaustive]pub struct RefineReport {
pub input_triangles: usize,
pub output_triangles: usize,
pub vertices_added: usize,
pub surface_aware: bool,
pub max_deviation: Scalar,
pub attribute_fates: Vec<(String, AttributeFate)>,
}Expand description
What a refinement actually did.
max_deviation is the honest part. A planar refinement must report
exactly zero: a midpoint on a flat triangle lies in that triangle’s
plane, so any movement means a defect. A surface-aware refinement
reports how far it MOVED the surface toward the analytic one, which is
the measure of what the caller gained.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.input_triangles: usizeTriangles before.
output_triangles: usizeTriangles after.
vertices_added: usizeVertices introduced.
surface_aware: boolWhether new vertices were placed on an analytic surface.
false means linear midpoints: the result is a finer tessellation
of the same approximation, not a better approximation.
max_deviation: ScalarLargest distance a new vertex sits from the linear midpoint it would otherwise have occupied, in model units.
Zero for planar input even when surface-aware, because a plane’s midpoint already lies on the plane.
attribute_fates: Vec<(String, AttributeFate)>What happened to each named attribute channel.
Implementations§
Trait Implementations§
Source§impl Clone for RefineReport
impl Clone for RefineReport
Source§fn clone(&self) -> RefineReport
fn clone(&self) -> RefineReport
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more