12 #ifdef MOOSE_UNIT_TEST 13 #include "gtest/gtest.h" 65 std::unordered_map<std::string, Real>
getCoeffs()
const override;
91 const std::vector<std::pair<TransformationType, std::tuple<Real, Real, Real>>> &
98 std::vector<std::pair<std::string, std::tuple<Real, Real, Real>>>
126 std::unique_ptr<CSGSurface>
clone()
const override = 0;
135 #ifdef MOOSE_UNIT_TEST std::string name(const ElemQuality q)
const std::string & getName() const
Get the name of surface.
bool operator==(const CSGEngUnit &other) const
Operator overload for checking if two CSGEngUnit objects are equal.
void expandUnit() override=0
Create and add the concrete CSGSurface(s) in _internal_base.
std::vector< std::pair< std::string, std::tuple< Real, Real, Real > > > getTransformationsAsStrings() const override
Delegate to CSGSurface (CSGTransformationHelper)
CSGRegions creates an internal representation of a CSG region, which can refer to an intersection...
bool operator==(const CSGSurfaceEngUnit &other) const
Disambiguate == and != by forwarding to CSGEngUnit (name/property-based comparison) ...
CSGRegion _expanded_region
Stores the result of expandUnit(); EMPTY until then.
const std::string & getName() const override
Satisfy CSGEngUnit::getName() – resolved via CSGSurface::getName()
std::unique_ptr< CSGSurface > clone() const override=0
clone() is pure virtual – derived classes must implement
CSGSurfaceEngUnit(const std::string &name)
Construct a new CSGSurfaceEngUnit.
CSGRegion getExpandedRegion() const
Return the CSGRegion formed by the expanded CSGSurfaces.
bool operator!=(const CSGEngUnit &other) const
Operator overload for checking if two CSGEngUnit objects are not equal.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real evaluateSurfaceEquationAtPoint(const Point &p) const override=0
Evaluate the surface equation at the given point.
bool operator!=(const CSGSurfaceEngUnit &other) const
bool isEngUnit() const override
Engineering units report true so comparisons can skip the dynamic_cast fast path. ...
FRIEND_TEST(CSGEngUnitTest, testSurfUnit)
Friends for unit testing.
CSGSurface creates an internal representation of a Constructive Solid Geometry (CSG) surface...
const std::vector< std::pair< TransformationType, std::tuple< Real, Real, Real > > > & getTransformations() const override
Delegate to CSGSurface (CSGTransformationHelper)
std::unordered_map< std::string, Real > getCoeffs() const override
Always throws – coefficients are not defined for a surface engineering unit.
CSGSurfaceEngUnit is an abstract base class for "engineering units" that can be used as surfaces in c...
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...