Skip to main content

Module model

Module model 

Source
Expand description

The model: the arenas a shape’s handles refer into, and the builder that is the only way to mutate them.

A Model owns the topology nodes, the placement datums and the geometry. A Shape is meaningless without one: its handles index into these arenas and nothing else (docs/DATA_MODEL.md §11).

§One mutation path

Every structural change goes through Model’s builder methods. That is not ceremony: the invariants of docs/DATA_MODEL.md (a wire holds edges, a face’s tolerance does not exceed its edges’, a node’s kind matches its data) are checkable in one place only if there is one place. Handing out &mut TShape would scatter them across every caller, and the failures they guard against are silent ones.

Re-exports§

pub use crate::entity::GeometryStore;

Structs§

Absorbed
What an absorb produced: the transplanted roots, bound to the model that absorbed them, and where every absorbed identity ended up.
Model
A document: topology, placements, geometry, and where every entity came from.
ModelParts
A model’s contents, laid out the way a file holds them.

Enums§

Filter
Which sub-shapes a traversal should yield.

Functions§

ancestors_of
Every shape in root that has target among its sub-shapes.
explore
Walk a shape’s tree, composing placement and orientation on descent.
explore_unique
Walk a shape’s tree, yielding every sub-shape of want exactly once.