pub struct ImplicitCell {
pub axis: Axis,
pub from: f64,
pub to: f64,
pub low: f64,
pub high: f64,
pub bridge: Option<(f64, f64)>,
}Expand description
One stretch of an ImplicitCurve2: as the free parameter runs from
from to to, the curve is the unique zero of the field for the other
parameter in [low, high], where the field is strictly monotone in it.
A bridge is the last stretch into a point where two branches cross (a saddle of the field on its zero set, where the surfaces touch). Near there the zero cannot be isolated with certainty, so the bridge carries the solved parameter as the cubic that matches the branch’s value and slope at both ends: at the certified end the field’s own, at the crossing the direction where the field’s Hessian vanishes, which is the branch’s tangent there. It leaves the branch by about its length to the fourth power (ADR 0077).
Fields§
§axis: AxisThe free parameter.
from: f64Where the free parameter starts.
to: f64Where it ends (it may run either way).
low: f64Lower end of the bracket of the solved parameter.
high: f64Upper end of the bracket.
bridge: Option<(f64, f64)>For a bridge into a crossing, the slopes d solved / d free at
from and at to.
Implementations§
Source§impl ImplicitCell
impl ImplicitCell
Sourcepub fn bridge(from: DVec2, to: DVec2, start: DVec2, end: DVec2) -> ImplicitCell
pub fn bridge(from: DVec2, to: DVec2, start: DVec2, end: DVec2) -> ImplicitCell
A bridge from from to to in (u, v), leaving along start and
arriving along end (directions in (u, v)), free along the
parameter both directions move in most.
Sourcepub fn part(&self, s0: f64, s1: f64) -> ImplicitCell
pub fn part(&self, s0: f64, s1: f64) -> ImplicitCell
The part of the cell over local parameters [s0, s1].
Sourcepub fn reversed(&self) -> ImplicitCell
pub fn reversed(&self) -> ImplicitCell
The cell run backwards.
Sourcepub fn solved_range(&self) -> (f64, f64)
pub fn solved_range(&self) -> (f64, f64)
The smallest and largest solved value the cell can take: a bridge’s range is bounded by its Bezier control values.
Trait Implementations§
Source§impl Clone for ImplicitCell
impl Clone for ImplicitCell
Source§fn clone(&self) -> ImplicitCell
fn clone(&self) -> ImplicitCell
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ImplicitCell
impl Debug for ImplicitCell
Source§impl PartialEq for ImplicitCell
impl PartialEq for ImplicitCell
impl Copy for ImplicitCell
impl StructuralPartialEq for ImplicitCell
Auto Trait Implementations§
impl Freeze for ImplicitCell
impl RefUnwindSafe for ImplicitCell
impl Send for ImplicitCell
impl Sync for ImplicitCell
impl Unpin for ImplicitCell
impl UnwindSafe for ImplicitCell
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more