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, and some kernels do exactly
that. 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.