Skip to main content

revolve_at

Function revolve_at 

Source
pub fn revolve_at<S: Scalar>(
    part: &mut Part<S>,
    namer: &Namer,
    profile: &Profile<S>,
    origin: Vector3<S>,
) -> GeopResult<SolidId>
Expand description

Revolve profile — an open chain of curves in the (r, z) half-plane r >= 0, starting and ending on the axis (r = 0), each clamped and on the domain [0, 1] — 360 degrees around a vertical axis through origin (parallel to the z-axis), producing a closed, manifold solid of exactly 4 * profile.len() faces (no leftover degenerate one) — origin is added to every generated point, so the profile’s own z values are relative to origin’s z. See the module doc for the overall column-by-column strategy, and revolve_at_oriented for how the result is named.

The profile runs “top-down”: walked from its first point to its last, the region it bounds together with the axis lies on its right (e.g. (0, h) -> (r, h) -> (r, 0) -> (0, 0) for a cylinder). Walked the other way, the solid comes out inside-out.

A thin wrapper around revolve_at_oriented with the identity (z-axis) coordinate system — see that function to revolve around an arbitrary axis (e.g. super::cylinder::revolved_cylinder_along_axis).