Celeritas
0.5.0-56+6b053cd
|
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. | |
Arbitrarily oriented plane.
A plane is a first-order quadric that satisfies
\[ ax + bx + cz - d = 0 \]
|
inlineexplicit |
Construct with unit normal and point.
Displacement is the dot product of the point and the normal.