pub fn make_pipe_shell_evolving(
model: &mut Model,
profile: &Shape,
spine: &Shape,
law: &PipeLaw<'_>,
evolution: PipeEvolution,
tolerance: f64,
tol: Tolerances,
) -> OgeomResult<Built>Expand description
Sweep a planar profile along a spine under a frame law, the section scaling and twisting as it goes.
The profile (a closed wire, or a face whose holes ride along) stands
square to the spine at its start, as for a pipe shell. At each point of
the spine the section is the profile scaled about the spine by
1 + (scale - 1) λ and turned about it by twist λ, λ the share of
the spine’s length run there, then carried by law. With no scale and
no twist this is make_pipe_shell_with with mitred corners; it is
make_pipe_shell_laws with linear laws.
Scaled without a twist down one straight edge under the
rotation-minimizing, binormal or fixed law (none of which turns the
section along a line), the solid is the ruled loft from the profile to
its scaled image, exact; a scale of zero closes it on the spine’s end,
the exact pyramid or cone. Otherwise each loop of the profile is
skinned through its placed sections and held to tolerance between
them against the law, along an open spine with no sharp corner. Round
a smooth closed spine the section comes home to itself only unscaled,
and twisted whole turns or a part of one that turns it onto itself (a
square a quarter turn, a regular hexagon a sixth, a circle about its
centre any angle): the skin is closed round the spine, each hole a
void tunnel of its own shell. Each loop of the profile must come home
onto itself, a faceted one edge onto edge.
Along an open spine each hole sweeps its own solid under the same law, cut from the outer one.
§Errors
OgeomError::Construction if
scale is negative or twist not finite; if the profile is not a
closed planar wire or face standing square to the spine at its start;
if a skinned sweep is asked round a sharp corner, of the fixed law, or
to a scale of zero; if a section is scaled, or twisted by a part of a
turn that does not bring each of its loops home onto itself, round a
closed spine; and as
make_pipe_shell_with or the law refuses the spine.
OgeomError::NotDone if the skin
cannot reach tolerance.