19 #ifndef LIBMESH_POLY2TRI_TRIANGULATOR_H 20 #define LIBMESH_POLY2TRI_TRIANGULATOR_H 24 #include "libmesh/libmesh_config.h" 26 #ifdef LIBMESH_HAVE_POLY2TRI 29 #include "libmesh/dof_object.h" 30 #include "libmesh/triangulator_interface.h" 159 #endif // LIBMESH_HAVE_TRIANGLE 161 #endif // ifndef LIBMESH_POLY2TRI_TRIANGULATOR_H virtual bool refine_boundary_allowed() const override
Get whether or not the triangulation is allowed to refine the mesh boundary when refining the interio...
std::unique_ptr< FunctionBase< Real > > _desired_area_func
Location-dependent area requirements.
virtual void set_refine_boundary_allowed(bool refine_bdy_allowed) override
Set whether or not the triangulation is allowed to refine the mesh boundary when refining the interio...
This is the base class from which all geometric element types are derived.
bool _refine_bdy_allowed
Whether to allow boundary refinement.
The libMesh namespace provides an interface to certain functionality in the library.
virtual FunctionBase< Real > * get_desired_area_function() override
Get the function giving desired triangle area as a function of position, or nullptr if no such functi...
void triangulate_current_points()
Triangulate the current mesh and hole points.
virtual void set_desired_area_function(FunctionBase< Real > *desired) override
Set a function giving desired triangle area as a function of position.
The UnstructuredMesh class is derived from the MeshBase class.
Poly2TriTriangulator(UnstructuredMesh &mesh, dof_id_type n_boundary_nodes=DofObject::invalid_id)
The constructor.
std::map< const Hole *, std::unique_ptr< ArbitraryHole > > replaced_holes
We might have to replace the user-provided holes with refined versions.
bool insert_refinement_points()
Add Steiner points as new mesh nodes, as necessary to refine an existing trangulation.
The BoundaryInfo class contains information relevant to boundary conditions including storing faces...
static const dof_id_type invalid_id
An invalid id to distinguish an uninitialized DofObject.
virtual void triangulate() override
Internally, this calls the poly2tri triangulation code in a loop, inserting our owner Steiner points ...
bool is_refine_boundary_allowed(const BoundaryInfo &boundary_info, const Elem &elem, unsigned int side)
Is refining this element's boundary side allowed?
virtual ~Poly2TriTriangulator()
Empty destructor.
A C++ interface between LibMesh and the poly2tri library, with custom code for Steiner point insertio...
dof_id_type _n_boundary_nodes
Keep track of how many mesh nodes are boundary nodes.
bool should_refine_elem(Elem &elem)
Returns true if the given element ought to be refined according to current criteria.