pub fn sweep_along(
model: &mut NamedModel,
namer: &Namer,
solid: Option<&str>,
chain: &Chain<NurbCurve3D>,
plane: &CoordinateSystem,
loops: &[SweepLoop],
control: &Control,
rebuild: Option<Rebuild>,
) -> GeopResult<BuiltBody>Expand description
Sweeps loops — the first the outer loop, counter-clockwise in
plane’s (u, v), the rest holes in it, clockwise — along chain,
changing as control says (see [followed]): into a solid named
solid, or, without one, into sheets. Either way round, the solid comes
out with its faces pointing outwards.
Where the path turns a corner at an arc or a spline, the profile
projected onto the plane bisecting the corner lies on neither swept
wall, as it does between two lines. Each wall there is then put on the
surface the profile, carried rigidly, sweeps along its own curve, and
the body rebuilt around them (rebuild): the walls either side of the
corner meet where they cross. A joint of the profile is where its paths
either side cross the walls on the other side: for a planar path, one
point, since both paths run at the joint’s height above the path’s
plane; otherwise two, one each, joined by a piece of the crossing (see
[apart_at_corner]). Where the walls either side touch, the profile’s
normal along the axis the path turns about, they cross in an X: a point
inside a curve of the profile is made a joint of it there, named
X@J for the curve X and the corner J, and is one vertex. Refused,
by name, for a path that twists, scales or follows rails round such a
corner.
Named after the profiles’ curves X and joints P and the chain’s
curves C and joints J (see crate::sweep::sweep): the walls N(X,C), their
edges at the joints N(X,J), the edges between N(P,C), the vertices
N(P,J); for an open chain, the caps N(start) and N(end).