Expand description
Concrete surfaces.
The five analytic surfaces plus a NURBS patch, a surface of revolution, a
surface of extrusion, and a trimmed restriction of any of them. All reachable
through SurfaceGeometry, an enum for the same reasons curves are one: see
crate::curve.
§Keeping analytic surfaces analytic
A cylinder could be written as a NURBS patch. Keeping it a cylinder is worth
the extra types: intersection can take a closed-form path, measurement can
report a radius rather than a fit, files stay small, and a fillet knows it
is filleting a cylinder. The cost is that every algorithm must handle a
handful of cases, which the kind method makes an explicit choice rather
than a hidden one.
Structs§
- BSpline
Surface - A tensor-product B-spline patch, polynomial or rational.
- Cone
Surface - A cone, parameterized by
(angle, height). - Cylinder
Surface - A cylinder, parameterized by
(angle, height). - Extrusion
Surface - A curve swept along a direction.
- Offset
Surface - A surface displaced a constant signed distance along its basis’s normal, sharing the basis’s parameterization.
- Plane
Surface - A plane, parameterized by its frame’s
xandyaxes. - Revolution
Surface - A curve revolved about an axis.
- Sphere
Surface - A sphere, parameterized by
(longitude, latitude). - Torus
Surface - A torus, parameterized by
(angle about the axis, angle around the tube). - Trimmed
Surface - Another surface restricted to a sub-rectangle of its domain.
Enums§
- Surface
Geometry - A surface.
Constants§
- SURFACE_
EXTENT - How far an unbounded surface’s default domain reaches.
Functions§
- carried
- A parameter carried from one domain to another by the affine map between them: where a transform rescales a parameter, a trim inside the old domain lands at the same place inside the new. Unchanged where the old domain has no width to map from.