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().");
std::string name(const ElemQuality q)
const std::string & getName() const override
Satisfy CSGEngUnit::getName() (resolved via CSGCell::getName())
CSGRegions creates an internal representation of a CSG region, which can refer to an intersection...
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
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.
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...
const CSGCell & getExpandedCell() const
Return the single cell in _internal_base's root, which IS the expanded cell.
CSGCellEngUnit(const std::string &name)
Constructor for derived classes.