Celeritas 0.6.0-73+develop.4684b68f
|
Define the polar trunction of a solid. More...
#include <Solid.hh>
Public Types | |
Type aliases | |
using | VecPolarWedge = std::vector< InfPolarWedge > |
Public Member Functions | |
EnclosedPolar ()=default | |
Default to "all angles". | |
EnclosedPolar (Turn start, Turn stop) | |
Construct from a starting angle and stop angle. | |
VecPolarWedge | make_regions () const |
Construct one or two wedges to union. | |
constexpr | operator bool () const |
Whether the enclosed angle is less than the whole polar range. | |
Turn | start () const |
Starting angle. | |
Turn | stop () const |
stop angle | |
Define the polar trunction of a solid.
This subtracts up to two infinite cones centered along the z axis from the origin.
A start angle of zero corresponding to the +z axis. An interior angle of 0.5 results in no exclusion from the resulting solid.
Construct from a starting angle and stop angle.
The beginning starts at the north pole/top point and the end is at the south pole/bottom point.
Note that since the azimuthal region is periodic and can start anywhere from zero to 1 turn, we have to make decisions about its shape based on the stop angle rather than end angle, else we'd have to restrict the input start value to +/- pi
or something. In contrast, the polar region is on a non-periodic range [0, 0.5]
and we have to...
auto celeritas::orangeinp::EnclosedPolar::make_regions | ( | ) | const |
Construct one or two wedges to union.
The result will be intersected the solid: these wedges are the parts to keep.