Skip to main content

brepkit_geometry/convert/
mod.rs

1//! Geometry type conversion (e.g. analytic curves/surfaces to NURBS and back).
2//!
3//! # Modules
4//!
5//! - [`curve_to_nurbs`] — convert [`Circle3D`], [`Ellipse3D`], and line segments
6//!   to exact or near-exact rational NURBS curves.
7//! - [`surface_to_nurbs`] — convert analytic surfaces (cylinder, sphere, cone,
8//!   torus) to NURBS surfaces.
9//! - [`recognize_curve()`] — identify a NURBS curve as a line or circle arc.
10//! - [`recognize_surface()`] — identify a NURBS surface as a plane, cylinder, or
11//!   sphere.
12//!
13//! [`Circle3D`]: brepkit_math::curves::Circle3D
14//! [`Ellipse3D`]: brepkit_math::curves::Ellipse3D
15
16pub mod curve_to_nurbs;
17pub mod recognize_curve;
18pub mod recognize_surface;
19pub mod surface_to_nurbs;
20
21pub use curve_to_nurbs::{
22    circle_to_nurbs, circle_to_nurbs_with_segments, ellipse_to_nurbs, line_to_nurbs,
23};
24pub use recognize_curve::{DetectedCurveKind, RecognizedCurve, detect_curve_kind, recognize_curve};
25pub use recognize_surface::{
26    DetectedSurfaceKind, RecognizedSurface, detect_surface_kind, recognize_surface,
27};
28pub use surface_to_nurbs::{cone_to_nurbs, cylinder_to_nurbs, sphere_to_nurbs, torus_to_nurbs};