1#![forbid(unsafe_code)]
2
3pub mod elementary;
9pub mod evaluate;
10pub mod spline;
11
12pub use elementary::{Cone, Cylinder, EllipticalCylinder, Plane, Sphere, Torus};
13pub use evaluate::SurfaceEvaluator;
14pub use spline::BSplineSurface;
15
16#[non_exhaustive]
18#[derive(Debug, Clone, PartialEq)]
19#[cfg_attr(
20 feature = "serde",
21 derive(serde::Serialize, serde::Deserialize),
22 serde(deny_unknown_fields)
23)]
24pub enum Surface {
25 Plane(Plane),
27 Cylinder(Cylinder),
29 EllipticalCylinder(EllipticalCylinder),
31 Cone(Cone),
33 Sphere(Sphere),
35 Torus(Torus),
37 BSpline(BSplineSurface),
39}