Skip to main content

GordonRefusal

Enum GordonRefusal 

Source
pub enum GordonRefusal {
Show 14 variants TooFewCurves { family: char, count: usize, }, InvalidBand { band: f64, }, DegenerateCurve { family: char, curve: usize, extent: f64, band: f64, }, ClosedCurve { family: char, curve: usize, gap: f64, band: f64, }, CurvesDoNotMeet { u_curve: usize, v_curve: usize, gap: f64, band: f64, }, MultipleCrossings { u_curve: usize, v_curve: usize, crossings: Vec<(f64, f64)>, band: f64, }, CrossingOrder { family: char, curve: usize, parameters: Vec<f64>, }, CoincidentCrossings { family: char, first: usize, second: usize, separation: f64, }, Overhang { family: char, curve: usize, end: usize, parameter: f64, gap: f64, band: f64, }, InconsistentCrossing { u_curve: usize, v_curve: usize, gap: f64, band: f64, u_parameter_offset: f64, v_parameter_offset: f64, }, WeightClosure { u_curve: usize, v_curve: usize, ratio: f64, band: f64, }, NonPositiveWeight { row: usize, column: usize, weight: f64, }, Incompatible { family: char, detail: String, }, Geometry(String),
}
Expand description

A Gordon constructor’s refusal, with the measurement that caused it.

family is 'u' for the u_curves argument and 'v' for v_curves; curve indices are the CALLER’s indices into those slices.

Variants§

§

TooFewCurves

A family needs at least two curves: its two boundaries.

Fields

§family: char
§count: usize
§

InvalidBand

A caller-stated crossing band that is not a positive finite distance.

Fields

§band: f64
§

DegenerateCurve

The curve has no extent: it is a point, not a curve.

Fields

§family: char
§curve: usize
§extent: f64
§band: f64
§

ClosedCurve

The curve’s start and end meet: a closed curve. Periodic networks are out of scope — which of the coincident ends a crossing belongs to is not decidable from the curves.

Fields

§family: char
§curve: usize
§gap: f64
§band: f64
§

CurvesDoNotMeet

The two curves do not meet: gap is their measured closest approach.

Fields

§u_curve: usize
§v_curve: usize
§gap: f64
§band: f64
§

MultipleCrossings

The two curves meet more than once inside the band. crossings holds each (u-curve parameter, v-curve parameter) found.

Fields

§u_curve: usize
§v_curve: usize
§crossings: Vec<(f64, f64)>
§band: f64
§

CrossingOrder

Along this curve the other family’s crossings do not run in one order — neither increasing nor decreasing in the order the family’s first curve sees them — so the two families do not form a grid. parameters are this curve’s crossing parameters in that order.

Fields

§family: char
§curve: usize
§parameters: Vec<f64>
§

CoincidentCrossings

Two curves of family cross the other family at the same parameter (separation apart): the skinning across them has no solution.

Fields

§family: char
§first: usize
§second: usize
§separation: f64
§

Overhang

The curve runs past the network boundary: its crossing with the outermost curve of the other family at its end (0 = start, 1 = end, after orientation) sits at parameter instead of the end, and the overhang measures gap along the curve.

Fields

§family: char
§curve: usize
§end: usize
§parameter: f64
§gap: f64
§band: f64
§

InconsistentCrossing

The two curves meet, but not at their families’ shared crossing parameters: at those parameters they are gap apart. A Gordon surface needs one parameter per crossing curve across the whole family; u_parameter_offset and v_parameter_offset say how far this pair’s own crossing sits from the shared ones.

Fields

§u_curve: usize
§v_curve: usize
§gap: f64
§band: f64
§u_parameter_offset: f64
§v_parameter_offset: f64
§

WeightClosure

The network is rational and no per-curve re-scaling makes the two curves’ homogeneous weights agree at every crossing: at this pair the reconciled weights differ by ratio.

Fields

§u_curve: usize
§v_curve: usize
§ratio: f64
§band: f64
§

NonPositiveWeight

The blend put a control point at or beyond infinity: the rational net weight at (row, column) is not positive.

Fields

§row: usize
§column: usize
§weight: f64
§

Incompatible

Degree/knot compatibility, or the cardinal collocation, could not be reached in family.

Fields

§family: char
§detail: String
§

Geometry(String)

An underlying kernel geometry error, verbatim.

Trait Implementations§

Source§

impl Clone for GordonRefusal

Source§

fn clone(&self) -> Self

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 GordonRefusal

Source§

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

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

impl Display for GordonRefusal

Source§

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

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

impl From<GordonRefusal> for String

The lossy exit for stringly callers, exactly like crate::CoonsRefusal’s.

Source§

fn from(refusal: GordonRefusal) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for GordonRefusal

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for GordonRefusal

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more