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
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.
bool operator!=(const CSGEngUnit &other) const
Operator overload for checking if two CSGEngUnit objects are not equal.
bool operator==(const CSGEngUnit &other) const
Operator overload for checking if two CSGEngUnit objects are equal.
CSGRegions creates an internal representation of a CSG region, which can refer to an intersection,...
CSGSurfaceEngUnit is an abstract base class for "engineering units" that can be used as surfaces in c...
bool isEngUnit() const override
Engineering units report true so comparisons can skip the dynamic_cast fast path.
std::vector< std::pair< std::string, std::tuple< Real, Real, Real > > > getTransformationsAsStrings() const override
Delegate to CSGSurface (CSGTransformationHelper)
const std::vector< std::pair< TransformationType, std::tuple< Real, Real, Real > > > & getTransformations() const override
Delegate to CSGSurface (CSGTransformationHelper)
Real evaluateSurfaceEquationAtPoint(const Point &p) const override=0
Evaluate the surface equation at the given point.
std::unordered_map< std::string, Real > getCoeffs() const override
Always throws – coefficients are not defined for a surface engineering unit.
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.
void expandUnit() override=0
Create and add the concrete CSGSurface(s) in _internal_base.
CSGRegion getExpandedRegion() const
Return the CSGRegion formed by the expanded CSGSurfaces.
const std::string & getName() const override
Satisfy CSGEngUnit::getName() – resolved via CSGSurface::getName()
FRIEND_TEST(CSGEngUnitTest, testSurfUnit)
Friends for unit testing.
std::unique_ptr< CSGSurface > clone() const override=0
clone() is pure virtual – derived classes must implement
bool operator!=(const CSGSurfaceEngUnit &other) const
CSGSurface creates an internal representation of a Constructive Solid Geometry (CSG) surface,...
const std::string & getName() const
Get the name of surface.