Ball primitive: a circle in 2D or a sphere in 3D.
The LineSegment class is used by the LineMaterialSamplerBase class and for some ray tracing stuff.
Base class for a single surface (boundary) element of a closed surface mesh.
const Point & normal() const
Getter for the normal vector.
Real getProjectedBoundingBoxDiagonal(const Point &normal_dir) const
Compute the length of the element bounding-box diagonal projected onto a plane orthogonal to a given ...
const Elem * _elem
Pointer to the libMesh element representing this surface face.
virtual bool intersect(const LineSegment &line_segment) const =0
Check if the given line segment intersects this surface element.
const Elem & elem() const
Getter for the underlying element.
const Point _normal
Unit normal vector of the surface element.
virtual Ball computeBoundingBall() const =0
Compute a bounding ball for this surface element.
virtual ~SurfaceElement()=default
Virtual destructor to ensure proper cleanup in derived classes.
unsigned int expectedEmbeddingMeshDim() const
Getter of expected embedding solving mesh dimension Because the surface element is a face of the embe...