Expand description
Building topology from geometry.
One level above Model’s raw builders: these take geometry, derive the
topology it implies, check the invariants that need geometry to check, and
report history.
§What “checked” means here
Model::add_wire verifies that its children are edges. That is all it can
do, because it has no geometry. make_wire additionally verifies that
consecutive edges actually meet, which is the property that makes a wire
a connected path rather than a bag of edges, and which every algorithm
downstream assumes without checking. A wire whose edges do not join produces
a face with a gap in its boundary, and the first thing to notice is usually
a boolean, several operations later.
Modules§
- roles
- Roles a builder assigns, so a rebuild can match entities up.
Functions§
- attach_
pcurve - Attach a pcurve to an edge, describing it in a surface’s parameter space.
- attach_
seam - Attach a seam representation to an edge: one pcurve per side of a closed surface’s join.
- chain_
wire_ branches - Put a face’s wires on one branch of a periodic chart.
- edge_
vertices - The vertices an edge runs between, in the direction it is traversed.
- find_
plane - The plane a shape lies in, if it lies in one.
- is_
shell_ closed - Whether every edge in a shell is shared by exactly two faces.
- is_
wire_ closed - Whether a wire’s last edge returns to its first edge’s start.
- make_
apex_ band - Build the face of a revolution cap: one closed ring belting a cone, with the apex the file never wrote synthesised as the degenerate ring the band needs.
- make_
band_ between - Build the face of a band between two closed rings that need not be circles, each with a caller-supplied chart image.
- make_
compound - Build a compound from any shapes, with history.
- make_
compsolid - Build a shell from faces.
- make_
edge - Build an edge on
curve, bounded by its own endpoints. - make_
edge_ between - Build an edge between two existing vertices, on
curve. - make_
face - Build a face on
surface, bounded bywires. - make_
face_ on - Build a face on a surface the model already holds.
- make_
face_ with_ pcurves - Build a face on
surfacefrom per-wire edge lists, attaching an exact same-parameter pcurve to every edge. - make_
natural_ face - Build a face covering the whole of
surface, with no trimming. - make_
polygon - Build a wire of straight segments through a sequence of points.
- make_
revolution_ band - Build the face of a revolution band: two closed rings joined by a synthesised seam, pcurves attached window-coherently.
- make_
shell - Build a shell from faces.
- make_
solid - Build a solid from shells.
- make_
vertex - Add a vertex at
point. - make_
wire - Build a wire from edges that meet end to end.
- rings_
are_ parallels - Whether two closed ring edges are parallels of
surface, so thatmake_revolution_bandcan build a band between them. A reader asks this first: a periodic face bounded by two closed circles that are not parallels (a button head’s rims, square to the screw on a sphere whose chart runs along z) is a legitimate face on its own bounds, not a band missing its seam, and deserves no warning. - surface_
iso_ u_ curve - The surface’s
u = atiso-curve, parameterized byvexactly. - trimmed_
where_ bare - Give every edge of
facethat has no trim on the face’s surface its exact one, where a closed form exists: a profile built from bare curves becomes a face a sweep can keep as an end.