Celeritas
0.5.0-86+4a8eea4
|
A regular, z-extruded polygon centered on the origin. More...
#include <IntersectRegion.hh>
Public Member Functions | |
Prism (int num_sides, real_type apothem, real_type halfheight, real_type orientation) | |
Construct with inner radius (apothem), half height, and orientation. | |
void | build (IntersectSurfaceBuilder &) const final |
Build surfaces. | |
void | output (JsonPimpl *) const final |
Write output to the given JSON object. | |
bool | encloses (Prism const &other) const |
Whether this encloses another sphere. | |
int | num_sides () const |
Number of sides. | |
real_type | apothem () const |
Inner radius. | |
real_type | halfheight () const |
Half the Z height. | |
real_type | orientation () const |
Rotation factor. | |
Additional Inherited Members | |
Protected Member Functions inherited from celeritas::orangeinp::IntersectRegionInterface | |
IntersectRegionInterface ()=default | |
CELER_DEFAULT_COPY_MOVE (IntersectRegionInterface) | |
A regular, z-extruded polygon centered on the origin.
This is the base component of a G4Polyhedra (PGON). The default rotation is to put a y-aligned plane on the bottom of the shape, so looking at an x-y slice given an apothem a, every shape has a surface at \( y = -a \):
The "orientation" parameter is a scaled counterclockwise rotation on \([0, 1)\), where zero preserves the orientation described above, and unity replicates the original shape but with the "p0" face being where the "p1" originally was. With a value of 0.5: