13#include "gtest/gtest.h"
63 virtual std::unordered_map<std::string, Real>
getCoeffs()
const = 0;
115 virtual std::unique_ptr<CSGSurface>
clone()
const = 0;
128#ifdef MOOSE_UNIT_TEST
CSGBase creates an internal representation of a Constructive Solid Geometry (CSG) model.
CSGSurfaceList is a container for storing CSGSurface objects in the CSGBase object.
CSGSurface creates an internal representation of a Constructive Solid Geometry (CSG) surface,...
virtual ~CSGSurface()=default
Destructor.
FRIEND_TEST(CSGSurfaceTest, testSurfaceEquality)
Halfspace
Enum for the sign of the half-space being represented by a point and surface.
bool operator==(const CSGSurface &other) const
Operator overload for checking if two CSGSurface objects are equal.
const std::string getSurfaceType() const
Get the Surface Type.
FRIEND_TEST(CSGSurfaceTest, testSetName)
Friends for unit testing.
std::string _name
Name of surface.
bool operator!=(const CSGSurface &other) const
Operator overload for checking if two CSGSurface objects are not equal.
CSGSurface::Halfspace getHalfspaceFromPoint(const Point &p) const
given a point, determine if it is in the positive or negative half-space for the surface
virtual bool isEngUnit() const
Whether this surface is an engineering unit.
void setName(const std::string &name)
virtual Real evaluateSurfaceEquationAtPoint(const Point &p) const =0
given a point, determine its evaluation based on the surface equation.
const std::string & getName() const
Get the name of surface.
virtual std::unordered_map< std::string, Real > getCoeffs() const =0
Get the coefficients that define the surface.
virtual std::unique_ptr< CSGSurface > clone() const =0
Create clone of current surface, to be implemented by derived class.
std::string prettyCppType(const std::string &cpp_type)
std::string demangle(const char *name)