pub struct BezierRetainedLineRegionRoleReport2 { /* private fields */ }Expand description
Exact role assignment for retained line-image Bezier boundary loops.
This report is intentionally narrower than arbitrary retained Bezier role
assignment. It accepts materialized Bezier/conic fragments only through a
certified exact line-image fit, accepts algebraic endpoint-image fragments
only when they provide exact endpoint witnesses, lowers those loops to
native Contour2 line loops, and then runs exact nesting. This follows
Yap’s exact-geometric-computation boundary: unsupported curve families
remain explicit evidence gaps rather than being sampled into polygon
surrogates. The source counters retain whether role assignment consumed
native fit certificates or algebraic endpoint evidence. The containment
step uses boundary-first point-in-contour classification as surveyed by
Hormann and Agathos, “The Point in Polygon Problem for Arbitrary Polygons,”
Computational Geometry 20(3), 131-144 (2001).
Implementations§
Source§impl BezierRetainedLineRegionRoleReport2
impl BezierRetainedLineRegionRoleReport2
Sourcepub fn new(
roles: Vec<BezierRetainedRegionLoopRole>,
nesting_depths: Vec<usize>,
materialized_fragment_count: usize,
algebraic_fragment_count: usize,
contours: Vec<Contour2>,
) -> CurveResult<Self>
pub fn new( roles: Vec<BezierRetainedRegionLoopRole>, nesting_depths: Vec<usize>, materialized_fragment_count: usize, algebraic_fragment_count: usize, contours: Vec<Contour2>, ) -> CurveResult<Self>
Constructs a retained line-image role report.
Sourcepub fn with_loop_arrangement_sources(
self,
loop_arrangement_sources: Vec<Option<Vec<BezierRetainedFragmentSource2>>>,
) -> CurveResult<Self>
pub fn with_loop_arrangement_sources( self, loop_arrangement_sources: Vec<Option<Vec<BezierRetainedFragmentSource2>>>, ) -> CurveResult<Self>
Attaches one optional arrangement source trail per retained loop.
Sourcepub fn roles(&self) -> &[BezierRetainedRegionLoopRole]
pub fn roles(&self) -> &[BezierRetainedRegionLoopRole]
Returns one assigned role per retained boundary loop.
Sourcepub fn nesting_depths(&self) -> &[usize]
pub fn nesting_depths(&self) -> &[usize]
Returns the certified count of containing loops for each retained loop.
Sourcepub const fn materialized_fragment_count(&self) -> usize
pub const fn materialized_fragment_count(&self) -> usize
Returns how many materialized fragments contributed certified line-image fits.
Sourcepub const fn algebraic_fragment_count(&self) -> usize
pub const fn algebraic_fragment_count(&self) -> usize
Returns how many algebraic endpoint-image fragments contributed exact endpoints.
Sourcepub const fn has_algebraic_fragments(&self) -> bool
pub const fn has_algebraic_fragments(&self) -> bool
Returns true when algebraic endpoint evidence contributed to the line contours.
Sourcepub fn contours(&self) -> &[Contour2]
pub fn contours(&self) -> &[Contour2]
Returns exact native line contours used for role assignment.
Sourcepub fn loop_arrangement_sources(
&self,
) -> Option<&[Option<Vec<BezierRetainedFragmentSource2>>]>
pub fn loop_arrangement_sources( &self, ) -> Option<&[Option<Vec<BezierRetainedFragmentSource2>>]>
Returns per-loop arrangement/source provenance when the report has it.
Sourcepub fn material_loop_indices(&self) -> Vec<usize>
pub fn material_loop_indices(&self) -> Vec<usize>
Returns loop indices assigned as material.
Sourcepub fn hole_loop_indices(&self) -> Vec<usize>
pub fn hole_loop_indices(&self) -> Vec<usize>
Returns loop indices assigned as holes.
Trait Implementations§
Source§impl Clone for BezierRetainedLineRegionRoleReport2
impl Clone for BezierRetainedLineRegionRoleReport2
Source§fn clone(&self) -> BezierRetainedLineRegionRoleReport2
fn clone(&self) -> BezierRetainedLineRegionRoleReport2
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl PartialEq for BezierRetainedLineRegionRoleReport2
impl PartialEq for BezierRetainedLineRegionRoleReport2
Source§fn eq(&self, other: &BezierRetainedLineRegionRoleReport2) -> bool
fn eq(&self, other: &BezierRetainedLineRegionRoleReport2) -> bool
self and other values to be equal, and is used by ==.