Celeritas  0.5.0-56+6b053cd
Public Member Functions | List of all members
celeritas::orangeinp::Prism Class Referencefinal

A regular, z-extruded polygon centered on the origin. More...

#include <IntersectRegion.hh>

Inheritance diagram for celeritas::orangeinp::Prism:
Inheritance graph
[legend]

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
 
virtual ~IntersectRegionInterface ()=default
 
 CELER_DEFAULT_COPY_MOVE (IntersectRegionInterface)
 

Detailed Description

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:


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