Celeritas 0.6.0-110+develop.c7dc37d1
|
A region formed by revolving a SpecialTrapezoid around the z-axis. More...
#include <IntersectRegion.hh>
Public Member Functions | |
RevolvedSpecialTrapezoid (SpecialTrapezoid &&trap) | |
Construct from a special trapezoid. | |
void | build (IntersectSurfaceBuilder &) const final |
Build surfaces. | |
void | output (JsonPimpl *) const final |
Write output to the given JSON object. | |
SpecialTrapezoid const & | trap () const |
Return the special trapezoid. | |
Additional Inherited Members | |
![]() | |
CELER_DEFAULT_COPY_MOVE (IntersectRegionInterface) | |
A region formed by revolving a SpecialTrapezoid around the z-axis.
The trapezoid being revolved always has a flat top and bottom along the z axis and never crosses the z axis. These special constraints ensure that the revolved trapezoid's sides never touch both sheets of a cone, which as a quadric is always double-sheeted about the cone's vanishing point. As a convention, all r values must be non-negative. An example of the revolution process is shown below.
| ........ ^ | . ________ . . . | . / | . . . . . . / | . . | / | ............... | /______________| | supplied special trapezoid z axis *
|
finalvirtual |
Build surfaces.
Surface are constructed by revolving each segment around the z axis. Thus:
If segment is coincident with the z axis, no surface is created, as it would enclose zero volume.
Implements celeritas::orangeinp::IntersectRegionInterface.
Write output to the given JSON object.
Implements celeritas::orangeinp::IntersectRegionInterface.