Skip to main content

geop_core_topology/
shell.rs

1use super::ids::{FaceId, SolidId};
2
3/// A connected, orientable 2-manifold made up of faces.
4///
5/// A shell of a solid is closed and bounds a region of space: a lump of
6/// the solid, or a void in one (see [`crate::Solid`]). A shell of no solid
7/// is a *sheet*, connected or not: faces standing on their own, not
8/// bounding anything, whose free border edges are used by one face only
9/// (what an extrude or revolve builds as a surface, and what a split cuts a
10/// solid with).
11#[derive(Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize)]
12pub struct Shell {
13    pub faces: Vec<FaceId>,
14    pub solid: Option<SolidId>,
15}