pub enum TorusPlaneIntersection {
TwoCircles(Circle3D, Circle3D),
TangentCircle(Circle3D),
Circle(Circle3D),
Empty,
NotAnalytic,
}Expand description
Result of intersecting a torus with a plane.
The analytic path needs the plane through the axis (two meridian
circles) or perpendicular to it (latitude circles). Anything else is
a quartic spiric section and reports
TorusPlaneIntersection::NotAnalytic.
Variants§
TwoCircles(Circle3D, Circle3D)
Two meridian circles (axis-containing plane).
TangentCircle(Circle3D)
Grazing ring (perpendicular plane at tube top/bottom).
Circle(Circle3D)
Single latitude ring (spindle case).
Empty
The plane misses the torus.
NotAnalytic
No closed form: the pair is not in analytic configuration.
Trait Implementations§
Source§impl Clone for TorusPlaneIntersection
impl Clone for TorusPlaneIntersection
impl Copy for TorusPlaneIntersection
Source§impl Debug for TorusPlaneIntersection
impl Debug for TorusPlaneIntersection
Source§impl PartialEq for TorusPlaneIntersection
impl PartialEq for TorusPlaneIntersection
impl StructuralPartialEq for TorusPlaneIntersection
Auto Trait Implementations§
impl Freeze for TorusPlaneIntersection
impl RefUnwindSafe for TorusPlaneIntersection
impl Send for TorusPlaneIntersection
impl Sync for TorusPlaneIntersection
impl Unpin for TorusPlaneIntersection
impl UnsafeUnpin for TorusPlaneIntersection
impl UnwindSafe for TorusPlaneIntersection
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
Mutably borrows from an owned value. Read more