A group of surface elements wrapped for point-containment / distance queries. More...
#include <SurfaceElementSet.h>
Public Member Functions | |
| const std::vector< std::unique_ptr< SurfaceElement > > & | elements () const |
| Owned surface-element wrappers, one per input element (input order preserved). | |
| const std::vector< Point > & | centroids () const |
| Per-element centroids (vertex averages), aligned index-for-index with elements(). | |
| const libMesh::BoundingBox & | boundingBox () const |
| Global AABB of the group (plain union of element loose bounding boxes). | |
| std::size_t | size () const |
| Number of surface elements in the group. | |
Static Public Member Functions | |
| static SurfaceElementSet | fromMesh (const MeshBase &mesh) |
| Build a set from every active element of a surface mesh. | |
| static SurfaceElementSet | fromElements (const std::vector< const Elem * > &elems) |
| Build a set from a caller-provided subset of surface elements. | |
Private Member Functions | |
| SurfaceElementSet ()=default | |
| Built only through the factories. | |
| void | addElement (const Elem *elem) |
| Validate, wrap, and append a single element, growing centroids and the AABB. | |
Private Attributes | |
| std::vector< std::unique_ptr< SurfaceElement > > | _elements |
| std::vector< Point > | _centroids |
| libMesh::BoundingBox | _bounding_box |
A group of surface elements wrapped for point-containment / distance queries.
This is the single place where a libMesh surface mesh (or a subset of its elements) is turned into SurfaceElement wrappers. It owns the wrappers, the matching per-element centroids, and the global axis-aligned bounding box (AABB) of the group. The AABB is method-independent: it is the plain union of the elements' loose bounding boxes with no algorithm-specific inflation.
Construct via the factories:
The referenced elements must outlive this object.
Definition at line 35 of file SurfaceElementSet.h.
|
privatedefault |
Built only through the factories.
|
private |
Validate, wrap, and append a single element, growing centroids and the AABB.
All elements must share one supported type (EDGE2 or TRI3).
Definition at line 47 of file SurfaceElementSet.C.
Referenced by fromElements(), and fromMesh().
|
inline |
Global AABB of the group (plain union of element loose bounding boxes).
Definition at line 51 of file SurfaceElementSet.h.
|
inline |
Per-element centroids (vertex averages), aligned index-for-index with elements().
Definition at line 48 of file SurfaceElementSet.h.
|
inline |
Owned surface-element wrappers, one per input element (input order preserved).
Definition at line 45 of file SurfaceElementSet.h.
|
static |
Build a set from a caller-provided subset of surface elements.
Definition at line 33 of file SurfaceElementSet.C.
|
static |
Build a set from every active element of a surface mesh.
Definition at line 18 of file SurfaceElementSet.C.
Referenced by BoundaryMeshBuilder::buildDefaultSet().
|
inline |
|
private |
Definition at line 66 of file SurfaceElementSet.h.
Referenced by addElement(), and boundingBox().
|
private |
Definition at line 65 of file SurfaceElementSet.h.
Referenced by addElement(), centroids(), fromElements(), and fromMesh().
|
private |
Definition at line 64 of file SurfaceElementSet.h.
Referenced by addElement(), elements(), fromElements(), fromMesh(), and size().