1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//! Fornjot modeling library
//!
//! The purpose of this library is to support Fornjot models, which are just
//! Rust libraries. Models depend on this library and use the primitives defined
//! here to define a CAD model.
//!
//! To actually display the CAD model, or export it to another file format, you
//! need the host application. Please refer to the [Fornjot repository] for
//! usage examples.
//!
//! [Fornjot repository]: https://github.com/hannobraun/Fornjot

mod shape_2d;
mod shape_3d;
mod syntax;

pub mod prelude {
    pub use crate::syntax::{
        Difference as _, Rotate as _, Sketch as _, Sweep as _, Translate as _,
        Union as _,
    };
}

pub use self::{shape_2d::*, shape_3d::*};

/// A shape
#[derive(Clone, Debug)]
#[repr(C)]
pub enum Shape {
    Shape2d(Shape2d),
    Shape3d(Shape3d),
}