OGS
GMSHAdaptiveMeshDensity.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#ifndef NDEBUG
7#include <string>
8#endif
9
11
12namespace GeoLib
13{
14class Point;
15template <typename T> class QuadTree;
16#ifndef NDEBUG
17class GEOObjects;
18#endif
19} // namespace GeoLib
20
21namespace FileIO
22{
23namespace GMSH
24{
25
27{
28public:
29 GMSHAdaptiveMeshDensity(double pnt_density,
30 double station_density,
31 std::size_t max_pnts_per_leaf);
32 ~GMSHAdaptiveMeshDensity() override;
33 void initialize(std::vector<GeoLib::Point const*> const& pnts) override;
34 double getMeshDensityAtPoint(GeoLib::Point const* const pnt) const override;
35 void addPoints(std::vector<GeoLib::Point const*> const& pnts);
37 GeoLib::Point const* const /*unused*/) const override;
38 void getSteinerPoints (std::vector<GeoLib::Point*> & pnts,
39 std::size_t additional_levels = 0) const;
40#ifndef NDEBUG
41 std::string getQuadTreeGeometry(GeoLib::GEOObjects& geo_objs) const;
42#endif
43
44private:
47 std::size_t _max_pnts_per_leaf;
49};
50
51} // namespace GMSH
52} // 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:46