Skip to main content

Derivation

Enum Derivation 

Source
#[non_exhaustive]
pub enum Derivation {
Show 18 variants PlanePlaneLine, CylinderPlanePerpendicularCircle, CylinderPlaneObliqueEllipse, SpherePlaneCircle, SphereSphereCircle, CylinderCylinderSteinmetzEllipses, ParallelCylinderLines, CylinderPlaneParallelRulings, CoaxialRevolutionCircles, RuledQuadricSection, TorusAngleSection, ConeApexRulings, ImplicitTrace, PairTrace, EllipticalCylinderPlaneSection, EllipticalCylinderPlaneRulings, ParallelEllipticalCylinderRulings, TorusMeridianCircles,
}
Expand description

The closed-form identity behind an exact intersection curve.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

PlanePlaneLine

Two non-parallel planes meet in a line along n1 x n2.

§

CylinderPlanePerpendicularCircle

A plane perpendicular to a cylinder axis cuts a circle of the cylinder’s own radius.

§

CylinderPlaneObliqueEllipse

A plane oblique to a cylinder axis cuts an ellipse with semi-axes r and r / cos(theta).

§

SpherePlaneCircle

A plane at signed distance d from a sphere centre cuts a circle of radius sqrt(r^2 - d^2).

§

SphereSphereCircle

Two spheres meet in a circle in their radical plane.

§

CylinderCylinderSteinmetzEllipses

Equal-radius cylinders on intersecting axes cut two ellipses.

§

ParallelCylinderLines

Cylinders with parallel axes meet in one or two axis-parallel lines.

§

CylinderPlaneParallelRulings

A plane parallel to a cylinder axis cuts one or two rulings.

§

CoaxialRevolutionCircles

Two coaxial surfaces of revolution meet in circles perpendicular to the shared axis, found by intersecting their meridian profiles.

§

RuledQuadricSection

A quadric substituted into a ruled carrier (cylinder, elliptical cylinder, or a cone cut by a plane) is quadratic in the ruling parameter at every angle; the curve is a root branch of that quadratic (ADR 0076).

§

TorusAngleSection

A plane or sphere meets each circle of a torus about its axis where A(v) cos u + B(v) sin u = C(v); the curve is u as a function of the tube angle v (ADR 0076).

§

ConeApexRulings

A plane through a cone’s apex cuts rays along its rulings, starting at the apex.

§

ImplicitTrace

The zero set of one surface’s equation read in the other’s parameters, traced into certified monotone cells (ADR 0077): a torus against a cylinder, cone or torus off its axis.

§

PairTrace

Two B-spline surfaces meet along curves found by splitting Bezier sub-patch pairs until no closed loop can hide in one, seeded where sub-patch edges cross, and followed on both surfaces (ADR 0077).

§

EllipticalCylinderPlaneSection

A plane not parallel to an elliptical cylinder’s axis cuts the conjugate semi-diameters a (X - Z n.X / n.Z) and b (Y - Z n.Y / n.Z) about the point where the axis pierces it: an ellipse, or a circle where they are perpendicular and equally long (#287).

§

EllipticalCylinderPlaneRulings

A plane parallel to an elliptical cylinder’s axis cuts one or two rulings, where its trace on the cross-section meets the ellipse (#287).

§

ParallelEllipticalCylinderRulings

Two cylinders, circular or elliptical, with parallel axes meet in the rulings over the angles where their cross-sections meet: the real roots of the other’s equation along the carrier’s ellipse, a quartic in the half-angle, isolated exactly (#287).

§

TorusMeridianCircles

A plane containing a torus’s axis cuts the two meridian circles of the tube at the angles where the plane meets the ring (#382).

Trait Implementations§

Source§

impl Clone for Derivation

Source§

fn clone(&self) -> Derivation

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 Copy for Derivation

Source§

impl Debug for Derivation

Source§

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

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

impl Eq for Derivation

Source§

impl PartialEq for Derivation

Source§

fn eq(&self, other: &Derivation) -> 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 Derivation

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.