Celeritas
0.5.0-56+6b053cd
|
A general parallelepiped centered on the origin. More...
#include <IntersectRegion.hh>
Public Member Functions | |
Parallelepiped (Real3 const &halfedges, Turn alpha, Turn theta, Turn phi) | |
Construct with a 3-vector of half-edges and three angles. | |
void | build (IntersectSurfaceBuilder &) const final |
Build surfaces. | |
void | output (JsonPimpl *) const final |
Write output to the given JSON object. | |
Real3 const & | halfedges () const |
Half-lengths of edge projections along each axis. | |
Turn | alpha () const |
Angle between slanted y-edges and the y-axis (in turns) | |
Turn | theta () const |
Polar angle of main axis (in turns) | |
Turn | phi () const |
Azimuthal angle of main axis (in turns) | |
Additional Inherited Members | |
Protected Member Functions inherited from celeritas::orangeinp::IntersectRegionInterface | |
IntersectRegionInterface ()=default | |
virtual | ~IntersectRegionInterface ()=default |
CELER_DEFAULT_COPY_MOVE (IntersectRegionInterface) | |
A general parallelepiped centered on the origin.
A parallelepiped is a shape having 3 pairs of parallel faces out of which one is parallel with the XY plane (Z faces). All faces are parallelograms in the general case. The Z faces have 2 edges parallel with the X-axis. Note that all angle parameters are expressed in terms of fractions of a 360deg turn.
The shape has the center in the origin and it is defined by:
halfedges:
a 3-vector (dY, dY, dZ) with half-lengths of the projections of the edges on X, Y, Z. The lower Z face is positioned at -dZ
, and the upper one at +dZ
.alpha:
angle between the segment defined by the centers of the X-parallel edges and Y axis. Validity range is (-1/4, 1/4)
;theta:
polar angle of the shape's main axis, e.g. the segment defined by the centers of the Z faces. Validity range is [0, 1/4)
;phi:
azimuthal angle of the shape's main axis (as explained above). Validity range is [0, 1)
.