fj_core/objects/mod.rs
1//! # Objects of a shape
2//!
3//! Objects, in Fornjot parlance, are the elements that make up shapes. Objects
4//! can reference each other, forming a directed acyclic graph (DAG).
5//!
6//! There are two top-level objects ([`Sketch`] and [`Solid`]) which represent
7//! whole shapes (2D and 3D, respectively), while all other objects are
8//! referenced (directly or indirectly) by these top-level objects.
9//!
10//! All objects are stored in centralized storage (see [`Objects`]) and referred
11//! to through a [`Handle`].
12//!
13//! [`Handle`]: crate::storage::Handle
14
15mod any_object;
16mod is_object;
17mod kinds;
18mod object_set;
19mod stores;
20
21pub use self::{
22 any_object::{AboutToBeStored, AnyObject, Bare, Form, Stored},
23 is_object::IsObject,
24 kinds::{
25 curve::Curve,
26 cycle::Cycle,
27 face::{Face, Handedness},
28 half_edge::HalfEdge,
29 region::Region,
30 shell::Shell,
31 sketch::Sketch,
32 solid::Solid,
33 surface::Surface,
34 vertex::Vertex,
35 },
36 object_set::{ObjectSet, ObjectSetIntoIter, ObjectSetIter},
37 stores::{Objects, Surfaces},
38};