Celeritas  0.5.0-86+4a8eea4
Public Types | Public Member Functions | Static Public Member Functions | List of all members
celeritas::Sphere Class Reference

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...
 

Detailed Description

Sphere centered at an arbitrary point.

\[ (x - x_0)^2 + (y - y_0)^2 + (z - z_0)^2 - r^2 = 0 \]

Member Function Documentation

◆ from_radius_sq()

Sphere celeritas::Sphere::from_radius_sq ( Real3 const &  origin,
real_type  rsq 
)
static

Construct from the square of the radius.

This is used for surface simplification.


The documentation for this class was generated from the following files: