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>
16class QuadTree;
17#ifndef NDEBUG
18class GEOObjects;
19#endif
20} // namespace GeoLib
21
22namespace FileIO
23{
24namespace GMSH
25{
26
28{
29public:
30 GMSHAdaptiveMeshDensity(double pnt_density,
31 double station_density,
32 std::size_t max_pnts_per_leaf);
33 ~GMSHAdaptiveMeshDensity() override;
34 void initialize(std::vector<GeoLib::Point const*> const& pnts) override;
35 double getMeshDensityAtPoint(GeoLib::Point const* const pnt) const override;
36 void addPoints(std::vector<GeoLib::Point const*> const& pnts);
38 GeoLib::Point const* const /*unused*/) const override;
39 void getSteinerPoints(std::vector<GeoLib::Point*>& pnts,
40 std::size_t additional_levels = 0) const;
41#ifndef NDEBUG
42 std::string getQuadTreeGeometry(GeoLib::GEOObjects& geo_objs) const;
43#endif
44
45private:
48 std::size_t _max_pnts_per_leaf;
50};
51
52} // namespace GMSH
53} // 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