#[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
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
impl Clone for Derivation
Source§fn clone(&self) -> Derivation
fn clone(&self) -> Derivation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for Derivation
Source§impl Debug for Derivation
impl Debug for Derivation
impl Eq for Derivation
Source§impl PartialEq for Derivation
impl PartialEq for Derivation
impl StructuralPartialEq for Derivation
Auto Trait Implementations§
impl Freeze for Derivation
impl RefUnwindSafe for Derivation
impl Send for Derivation
impl Sync for Derivation
impl Unpin for Derivation
impl UnsafeUnpin for Derivation
impl UnwindSafe for Derivation
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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