Celeritas
0.5.0-56+6b053cd
|
Sphere centered at an arbitrary point. More...
#include <Sphere.hh>
Public Types | |
using | Intersections = Array< real_type, 2 > |
Type aliases. | |
using | StorageSpan = Span< real_type const, 4 > |
Public Member Functions | |
CELER_FUNCTION | Sphere (Real3 const &origin, real_type radius) |
Construct with sphere origin and radius. | |
template<class R > | |
CELER_FUNCTION | Sphere (Span< R, StorageSpan::extent >) |
Construct from raw data. | |
Sphere (SphereCentered const &other) noexcept | |
Promote from a centered sphere. | |
CELER_FUNCTION Real3 const & | origin () const |
Center position. | |
CELER_FUNCTION real_type | radius_sq () const |
Square of the radius. | |
CELER_FUNCTION StorageSpan | data () const |
Get a view to the data for type-deleted storage. | |
CELER_FUNCTION SignedSense | calc_sense (Real3 const &pos) const |
Determine the sense of the position relative to this surface. | |
CELER_FUNCTION Intersections | calc_intersections (Real3 const &pos, Real3 const &dir, SurfaceState on_surface) const |
Calculate all possible straight-line intersections with this surface. | |
CELER_FUNCTION Real3 | calc_normal (Real3 const &pos) const |
Calculate outward normal at a position. | |
Static Public Member Functions | |
static CELER_CONSTEXPR_FUNCTION SurfaceType | surface_type () |
Surface type identifier. | |
static CELER_CONSTEXPR_FUNCTION bool | simple_safety () |
Safety is intersection along surface normal. | |
static Sphere | from_radius_sq (Real3 const &origin, real_type rsq) |
Construct from the square of the radius. More... | |
Sphere centered at an arbitrary point.
\[ (x - x_0)^2 + (y - y_0)^2 + (z - z_0)^2 - r^2 = 0 \]
Construct from the square of the radius.
This is used for surface simplification.