OGS
MeshLayerMapper.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
7
8namespace MeshToolsLib
9{
10
15{
16public:
17 ~MeshLayerMapper() override = default;
18
32 MeshLib::Mesh const& mesh,
33 std::vector<float> const& layer_thickness_vector,
34 std::string const& mesh_name = "SubsurfaceMesh");
35
55 bool createRasterLayers(MeshLib::Mesh const& mesh,
56 std::vector<GeoLib::Raster const*> const& rasters,
57 double minimum_thickness,
58 double noDataReplacementValue = 0.0) override;
59
65 static bool layerMapping(MeshLib::Mesh const& mesh,
66 const GeoLib::Raster& raster,
67 double nodata_replacement = 0.0,
68 bool const ignore_nodata = false);
69
71 static bool mapToStaticValue(MeshLib::Mesh const& mesh, double value);
72
73private:
75 void addLayerToMesh(const MeshLib::Mesh& dem_mesh,
76 unsigned layer_id,
77 GeoLib::Raster const& raster) override;
78};
79
80} // namespace MeshToolsLib
Class Raster is used for managing raster data.
Definition Raster.h:39
LayeredMeshGenerator()=default
Manipulating and adding prism element layers to an existing 2D mesh.
bool createRasterLayers(MeshLib::Mesh const &mesh, std::vector< GeoLib::Raster const * > const &rasters, double minimum_thickness, double noDataReplacementValue=0.0) override
static MeshLib::Mesh * createStaticLayers(MeshLib::Mesh const &mesh, std::vector< float > const &layer_thickness_vector, std::string const &mesh_name="SubsurfaceMesh")
~MeshLayerMapper() override=default
void addLayerToMesh(const MeshLib::Mesh &dem_mesh, unsigned layer_id, GeoLib::Raster const &raster) override
Adds another layer to a subsurface mesh.
static bool layerMapping(MeshLib::Mesh const &mesh, const GeoLib::Raster &raster, double nodata_replacement=0.0, bool const ignore_nodata=false)
static bool mapToStaticValue(MeshLib::Mesh const &mesh, double value)
Maps the elevation of all mesh nodes to the specified static value.