OGS
GMSHAdaptiveMeshDensity.h
Go to the documentation of this file.
1
12#pragma once
13
14#ifndef NDEBUG
15#include <string>
16#endif
17
19
20namespace GeoLib
21{
22class Point;
23template <typename T> class QuadTree;
24#ifndef NDEBUG
25class GEOObjects;
26#endif
27} // namespace GeoLib
28
29namespace FileIO
30{
31namespace GMSH
32{
33
35{
36public:
37 GMSHAdaptiveMeshDensity(double pnt_density,
38 double station_density,
39 std::size_t max_pnts_per_leaf);
40 ~GMSHAdaptiveMeshDensity() override;
41 void initialize(std::vector<GeoLib::Point const*> const& pnts) override;
42 double getMeshDensityAtPoint(GeoLib::Point const* const pnt) const override;
43 void addPoints(std::vector<GeoLib::Point const*> const& pnts);
45 GeoLib::Point const* const /*unused*/) const override;
46 void getSteinerPoints (std::vector<GeoLib::Point*> & pnts,
47 std::size_t additional_levels = 0) const;
48#ifndef NDEBUG
49 std::string getQuadTreeGeometry(GeoLib::GEOObjects& geo_objs) const;
50#endif
51
52private:
55 std::size_t _max_pnts_per_leaf;
57};
58
59} // namespace GMSH
60} // end namespace FileIO
double getMeshDensityAtPoint(GeoLib::Point const *const pnt) const override
double getMeshDensityAtStation(GeoLib::Point const *const) const override
std::string getQuadTreeGeometry(GeoLib::GEOObjects &geo_objs) const
void getSteinerPoints(std::vector< GeoLib::Point * > &pnts, std::size_t additional_levels=0) const
void initialize(std::vector< GeoLib::Point const * > const &pnts) override
GMSHAdaptiveMeshDensity(double pnt_density, double station_density, std::size_t max_pnts_per_leaf)
void addPoints(std::vector< GeoLib::Point const * > const &pnts)
GeoLib::QuadTree< GeoLib::Point > * _quad_tree
Container class for geometric objects.
Definition GEOObjects.h:57
TemplateElement< PointRule1 > Point
Definition Point.h:20