Ball primitive: a circle in 2D or a sphere in 3D.
Why not just use libMesh::Sphere?
- libMesh::Sphere is 3D only; Ball supports both 2D and 3D in a single type.
- Ball provides the operations the framework geometries layer needs: intersection with a LineSegment and a tight bounding ball used for fast nearest-neighbor / spatial searches. libMesh::Sphere exposes a different set of surface queries (closest point, normal, above/below surface) that we do not need here.
- Ball derives from GeometryBase so every framework geometry primitive can be used through one virtual interface.
If a caller does need the libMesh surface-query interface (e.g. ray tracing), use toSphere() to convert.
Definition at line 34 of file Ball.h.