pub fn revolve_arc_ring(
ring: &ArcRing,
axis_origin: Point3,
tolerance: Tolerance,
) -> GeomResult<ExactBRep>Expand description
Revolve a lowered section a full turn about the profile’s local y axis.
The section may touch the axis (#379), classified with the exact
side_of_axis sign, no tolerance: an edge lying on the axis sweeps no
face, and a straight edge ending on it exactly perpendicularly (equal
heights) sweeps a disc cap, so a solid cylinder and a stepped shaft
revolve. A section with vertices on both sides of the axis is refused as
crossing it. A vertex on the axis is admitted when one of its two edges
lies on the axis and the other is another axis edge, a disc cap, a
straight edge to a cone’s apex or an arc to a sphere’s pole. The apex or
pole is a vertex of the B-rep, not a degenerate edge: the wall’s loop runs
[rim circle], seam, [rim circle], seam reversed and leaves a gap along
the pole line in its parameters, which consumers close (ADR 0059). An arc
with exactly one end on the axis is a sphere when its circle is centred on
the axis to rounding (64 ulps of the coordinates it is computed from);
otherwise it is a spindle or horn torus and is refused by name, as is an
arc with both ends on the axis. A vertex on the axis with no axis edge (a
pinch point) is refused by name, and so is a vertex off the axis by no
more than the tolerance, as neither on it nor clear of it, or a straight
edge ending on the axis within the tolerance of perpendicular to it but
not exactly.
Several separate contacts (a cavity along the axis) give one solid per
outermost shell with the nested shells as its voids.