pub fn revolve(
rings: &Rings,
axis_origin: Point3,
axis_direction: Vec3,
angle: Scalar,
tolerance: Tolerance,
) -> GeomResult<TriMesh>Expand description
Revolve a profile about an axis into a closed solid.
A full turn wraps its rings by index, so the seam shares vertices by
construction rather than by two samplings agreeing numerically. That is
the same structure tessellate_primitive uses for a cylinder, and it
avoids the trim-based path recorded as broken in issue #2.
Every point of the surface the rings sweep lies within
tolerance.linear() of the mesh (see the module notes for the proof);
the rings’ own distance from a curved profile is the caller’s to add.
A budget that needs more than 4096 steps round the axis is refused with
BudgetExceeded. A profile with vertices on both sides of an in-plane
axis is InvalidInput. A vertex on the axis is meshed once, the point
being fixed under the rotation (see the module notes).