|
Celeritas 0.7.0-dev.179+develop.ec08af0c9
|
Define the polar truncation 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 truncation 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.