46 virtual const std::string &
getName()
const = 0;
76 virtual std::unordered_map<std::string, AttributeVariant>
getAttributes()
const = 0;
79 virtual const std::vector<std::pair<TransformationType, std::tuple<Real, Real, Real>>> &
83 virtual std::vector<std::pair<std::string, std::tuple<Real, Real, Real>>>
bool operator==(const CSGEngUnit &other) const
Operator overload for checking if two CSGEngUnit objects are equal.
std::unique_ptr< CSGBase > _internal_base
CSGBase populated by expandUnit(); joined into the parent CSGBase by expandEngUnit() ...
virtual void expandUnit()=0
Expand this engineering unit into basic CSG objects stored in _internal_base.
virtual const std::vector< std::pair< TransformationType, std::tuple< Real, Real, Real > > > & getTransformations() const =0
Get the list of transformations applied to this engineering unit.
CSGEngUnit(const std::string &behavior)
Constructor for intermediate EngUnit abstract classes.
const std::string getUnitType() const
Get the type name of this engineering unit.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
std::string demangle(const char *name)
virtual std::unordered_map< std::string, AttributeVariant > getAttributes() const =0
Get the attributes that define this engineering unit.
bool operator!=(const CSGEngUnit &other) const
Operator overload for checking if two CSGEngUnit objects are not equal.
std::unique_ptr< CSGBase > releaseBase()
Transfer ownership of the internal CSGBase out of this unit.
const std::string getBehavior() const
Get the behavior of this engineering unit (surface (i.e.
virtual std::vector< std::pair< std::string, std::tuple< Real, Real, Real > > > getTransformationsAsStrings() const =0
Get the transformations with string representations for types.
CSGBase & getBase()
Get the internal CSGBase owned by this engineering unit.
MooseEnum _behavior
The basic CSG type this unit produces: "SURFACE", "CELL", or "UNIVERSE".
virtual const std::string & getName() const =0
Get the unique instance name of this engineering unit.
CSGBase creates an internal representation of a Constructive Solid Geometry (CSG) model...
CSGEngUnit is the abstract base class for all "engineering unit" types in the CSG system...
std::string prettyCppType(const std::string &cpp_type)