Expand description
Parametric geometry: the Curve3d, Curve2d and Surface traits plus every
concrete type behind them.
Elsewhere: the Geom and Geom2d type vocabularies and the Adaptor
family.
The trait layer is the point, and it is the best idea in the conventional design: every intersection, projection and extrema algorithm is written against an adaptor, so nothing downstream cares whether the input is an analytic cylinder or a NURBS patch. Concrete types implement the traits; algorithms only ever see the traits.
Re-exports§
pub use curve::BSplineCurve;pub use curve::CircleCurve;pub use curve::Curve;pub use curve::CurveOnSurface;pub use curve::EllipseCurve;pub use curve::HelixCurve;pub use curve::HyperbolaCurve;pub use curve::LineCurve;pub use curve::OffsetCurve;pub use curve::ParabolaCurve;pub use curve::TrimmedCurve;pub use curve2d::BSpline2d;pub use curve2d::Circle2d;pub use curve2d::Ellipse2d;pub use curve2d::Line2d;pub use curve2d::Offset2d;pub use curve2d::PlanarCurve;pub use curve2d::Trig2d;pub use curve2d::Trimmed2d;pub use curve2d::tangent_angle;pub use surface::BSplineSurface;pub use surface::ConeSurface;pub use surface::CylinderSurface;pub use surface::ExtrusionSurface;pub use surface::OffsetSurface;pub use surface::PlaneSurface;pub use surface::RevolutionSurface;pub use surface::SphereSurface;pub use surface::SurfaceGeometry;pub use surface::TorusSurface;pub use surface::TrimmedSurface;pub use traits::Continuity;pub use traits::Curve2d;pub use traits::Curve3d;pub use traits::CurveKind;pub use traits::Reversible;pub use traits::Surface;pub use traits::SurfaceCurvature;pub use traits::SurfaceJet;pub use traits::SurfaceKind;pub use traits::Transformable;