Celeritas  0.5.0-56+6b053cd
List of all members
celeritas::Plane Class Reference

Arbitrarily oriented plane. More...

#include <Plane.hh>

Type aliases

using Intersections = Array< real_type, 1 >
 Surface type identifier.
 
using StorageSpan = Span< real_type const, 4 >
 Surface type identifier.
 
static CELER_CONSTEXPR_FUNCTION SurfaceType surface_type ()
 Surface type identifier.
 
static CELER_CONSTEXPR_FUNCTION bool simple_safety ()
 Safety is intersection along surface normal.
 
CELER_FUNCTION Plane (Real3 const &n, Real3 const &p)
 Construct with unit normal and point. More...
 
CELER_FUNCTION Plane (Real3 const &n, real_type d)
 Construct with unit normal and displacement.
 
template<class R >
CELER_FUNCTION Plane (Span< R, StorageSpan::extent >)
 Construct from raw data.
 
template<Axis T>
 Plane (PlaneAligned< T > const &other) noexcept
 Promote from an axis-aligned plane.
 
CELER_FUNCTION Real3 const & normal () const
 Normal to the plane.
 
CELER_FUNCTION real_type displacement () const
 Distance from the origin along the normal to the plane.
 
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 &) const
 Calculate outward normal at a position on the surface.
 

Detailed Description

Arbitrarily oriented plane.

A plane is a first-order quadric that satisfies

\[ ax + bx + cz - d = 0 \]

Constructor & Destructor Documentation

◆ Plane()

CELER_FUNCTION celeritas::Plane::Plane ( Real3 const &  n,
Real3 const &  p 
)
inlineexplicit

Construct with unit normal and point.

Displacement is the dot product of the point and the normal.


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