20 #ifndef GEOS_MESH_SIMPLEGEOMETRICOBJECTS_PLANARGEOMETRICOBJECT_HPP_
21 #define GEOS_MESH_SIMPLEGEOMETRICOBJECTS_PLANARGEOMETRICOBJECT_HPP_
23 #include "SimpleGeometricObjectBase.hpp"
47 Group *
const parent );
65 static string catalogName() {
return "PlanarGeometricObject"; }
143 static constexpr
char const * normalString() {
return "normal"; }
144 static constexpr
char const * mLengthVectorString() {
return "lengthVector"; }
145 static constexpr
char const * mWidthVectorString() {
return "widthVector"; }
Abstract class to implement functions used by all bounded geometric objects in GEOSX,...
static string catalogName()
Get the catalog name.
R1Tensor & getNormal()
Get the normal to the plane.
static constexpr real64 orthoNormalBaseTolerance
tolerance to check if base is orthonormal
R1Tensor const & getLengthVector() const
Get one of the tangent vectors defining the orthonormal basis along with the normal.
virtual R1Tensor const & getCenter() const =0
Get the origin of the plane.
R1Tensor const & getWidthVector() const
Get one of the tangent vectors defining the orthonormal basis along with the normal.
real64 m_tolerance
tolerance to determine if a point sits on the PlanarGeometricObject or not
virtual R1Tensor & getCenter()=0
Get the origin of the plane.
virtual bool isCoordInObject(real64 const (&coord)[3]) const override=0
Check if the input coordinates are in the object.
R1Tensor const & getNormal() const
Get the normal to the plane.
R1Tensor m_normal
Normal (n_x,n_y,n_z) to the plane (will be normalized automatically)
PlanarGeometricObject(const string &name, Group *const parent)
Constructor.
R1Tensor & getLengthVector()
Get one of the tangent vectors defining the orthonormal basis along with the normal.
R1Tensor m_widthVector
Width vector in the orthonormal basis along with the normal.
R1Tensor m_lengthVector
Length vector in the orthonormal basis along with the normal.
virtual ~PlanarGeometricObject() override
Default destructor.
R1Tensor & getWidthVector()
Get one of the tangent vectors defining the orthonormal basis along with the normal.
Base class for the geometric objects (box, plane, cylinder).
double real64
64-bit floating point type.
Structure to hold scoped key names.