Boundary primitive IDs for a single element.
const BoundaryType type_
Type of boundary primitives for the element.
bool empty() const
Check if the element has any boundary primitives.
void add_boundary_primitive(const int global_index, const int local_index)
Mark a boundary primitive as a part of the global boundary.
const int global_element_id_
Element ID.
int operator[](const int index) const
Get the i-th boundary primitive's local ID.
friend std::ostream & operator<<(std::ostream &os, const LocalBoundary &lb)
Print the LocalBoundary to an output stream.
int element_id() const
Get the element's ID.
int local_primitive_id(const int index) const
Get the i-th boundary primitive's local ID.
void remove_tag_for_index(const int index)
Remove a boundary primitive from the element.
std::vector< int > global_primitive_id_
Global IDs of the boundary primitives.
std::vector< int > local_primitive_id_
Local IDs of the boundary primitives.
int size() const
Number of boundary primitives for the element.
int global_primitive_id(const int index) const
Get the i-th boundary primitive's global ID.
BoundaryType type() const
Get the type of boundary for the element.
void remove_from(const LocalBoundary &other)
Remove all boundary primitives that are also in another LocalBoundary.
@ QUAD_LINE
Boundary of a quad in 2D.
@ TRI_LINE
Boundary of a triangle in 2D.