28 const auto & cells =
_internal_base->getRootUniverse().getAllCells();
29 if (cells.size() == 0)
30 mooseError(
"The root universe of CSGCellEngUnit ",
32 " contains no cells. ",
33 "Either getExpandedCell() was called before expandUnit() or expandUnit() is not "
34 "implemented correctly");
38 "' expandUnit() must create exactly one cell in _internal_base's root universe "
48 "' contains unlinked universes or cells. All objects created in expandUnit() must "
49 "be reachable from root. Check implementation of expandUnit().");
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
CSGCellEngUnit(const std::string &name)
Constructor for derived classes.
const CSGCell & getExpandedCell() const
Return the single cell in _internal_base's root, which IS the expanded cell.
const std::string & getName() const override
Satisfy CSGEngUnit::getName() (resolved via CSGCell::getName())
CSGCell creates an internal representation of a Constructive Solid Geometry (CSG) cell,...
CSGEngUnit is the abstract base class for all "engineering unit" types in the CSG system.
std::unique_ptr< CSGBase > _internal_base
CSGBase populated by expandUnit(); joined into the parent CSGBase by expandEngUnit()
const std::string getUnitType() const
Get the type name of this engineering unit.
CSGRegions creates an internal representation of a CSG region, which can refer to an intersection,...