Skip to main content

BezierRetainedLineRegionRoleReport2

Struct BezierRetainedLineRegionRoleReport2 

Source
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

Source

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.

Source

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.

Source

pub fn roles(&self) -> &[BezierRetainedRegionLoopRole]

Returns one assigned role per retained boundary loop.

Source

pub fn nesting_depths(&self) -> &[usize]

Returns the certified count of containing loops for each retained loop.

Source

pub const fn materialized_fragment_count(&self) -> usize

Returns how many materialized fragments contributed certified line-image fits.

Source

pub const fn algebraic_fragment_count(&self) -> usize

Returns how many algebraic endpoint-image fragments contributed exact endpoints.

Source

pub const fn has_algebraic_fragments(&self) -> bool

Returns true when algebraic endpoint evidence contributed to the line contours.

Source

pub fn contours(&self) -> &[Contour2]

Returns exact native line contours used for role assignment.

Source

pub fn loop_arrangement_sources( &self, ) -> Option<&[Option<Vec<BezierRetainedFragmentSource2>>]>

Returns per-loop arrangement/source provenance when the report has it.

Source

pub fn material_loop_indices(&self) -> Vec<usize>

Returns loop indices assigned as material.

Source

pub fn hole_loop_indices(&self) -> Vec<usize>

Returns loop indices assigned as holes.

Source

pub fn to_region(&self) -> Region2

Builds a native line-region with explicit material/hole bins.

Trait Implementations§

Source§

impl Clone for BezierRetainedLineRegionRoleReport2

Source§

fn clone(&self) -> BezierRetainedLineRegionRoleReport2

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BezierRetainedLineRegionRoleReport2

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for BezierRetainedLineRegionRoleReport2

Source§

fn eq(&self, other: &BezierRetainedLineRegionRoleReport2) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for BezierRetainedLineRegionRoleReport2

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.