32 if (MooseUtils::absoluteFuzzyGreaterThan(eval, 0))
34 else if (MooseUtils::absoluteFuzzyLessThan(eval, 0))
39 " used to determine halfspace evaluation lies on the surface ",
41 ", leading to an ambiguously defined halfspace.");
67 return !(*
this == other);
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
CSGEngUnit is the abstract base class for all "engineering unit" types in the CSG system.
CSGSurface creates an internal representation of a Constructive Solid Geometry (CSG) surface,...
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.
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.
CSGSurface(const std::string &name)
Default constructor.
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.
void checkValidCSGName(const std::string &name)
Check name of CSG component for disallowed characters and symbols.