pub struct CarrierDeviation {
pub band: f64,
pub lane: OffsetSurfaceLane,
pub surface: Option<MeasuredTolerance>,
pub edges: Vec<(u64, MeasuredTolerance)>,
pub vertices: Vec<(u64, f64)>,
}Expand description
Everything an offset carrier’s construction MEASURED about itself.
The half this kernel lacked: a tolerance MEASURED from the geometry that was
actually built, rather than a band chosen from scale before building. It
lives in the one place that needs no durable-format change: alongside the
transient construction result, never as a field on a
crate::BrepSolid record. io/snapshot.rs is a documented durable format
and SOLID_CODEC_VERSION a versioned wire layout; persisting per-entity
tolerances is real, planned, and separately designed
(docs/developer/kernel-plans/per-entity-tolerances.md S3). This lands the
measurement with no format churn at all.
Every number here is a RECORD. None of it widens a band — see
MeasuredTolerance’s direction rule.
Fields§
§band: f64The derived band every measurement below was judged against:
crate::offset_construction_band of the source solid’s extent.
lane: OffsetSurfaceLaneWhich branch built the carrier surface.
surface: Option<MeasuredTolerance>The carrier surface’s own fit error, when the lane has one.
edges: Vec<(u64, MeasuredTolerance)>max_t ‖C_3d(t) − S_off(p(t))‖ per carrier edge id, folded over every
coedge that references the edge — OCCT’s FillEdgeData rule
(BRepOffset_SimpleOffset.cxx:296-310), which takes the maximum over
every adjacent face rather than the first one.
vertices: Vec<(u64, f64)>Per carrier vertex id, propagated from the incident edge ends by
crate::vertex_tolerance_from_edges — which is also where the verdict
on OCCT’s 1.001 inflation factor is recorded.
Implementations§
Source§impl CarrierDeviation
impl CarrierDeviation
Sourcepub fn worst(&self) -> Option<MeasuredTolerance>
pub fn worst(&self) -> Option<MeasuredTolerance>
The worst thing the construction did, against the tightest band it
faced. None only when there was nothing at all to measure.
Sourcepub fn exceedances(&self) -> Vec<String>
pub fn exceedances(&self) -> Vec<String>
The entities whose measured deviation exceeded the derived band — the interesting case, and the only one any gate acts on.
Trait Implementations§
Source§impl Clone for CarrierDeviation
impl Clone for CarrierDeviation
Source§fn clone(&self) -> CarrierDeviation
fn clone(&self) -> CarrierDeviation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more