OGS
LayeredVolume.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#include <string>
7#include <vector>
8
10#include "MeshLib/Node.h"
11
12namespace GeoLib
13{
14class GEOObjects;
15class Surface;
16} // namespace GeoLib
17
22{
23public:
24 LayeredVolume() = default;
25 ~LayeredVolume() override = default;
26
46 bool createRasterLayers(const MeshLib::Mesh& mesh,
47 const std::vector<GeoLib::Raster const*>& rasters,
48 double minimum_thickness,
49 double noDataReplacementValue = 0.0) override;
50
53 std::vector<MeshLib::Node> getAttributePoints() const
54 {
55 return _attribute_points;
56 }
57
58private:
60 void addLayerToMesh(const MeshLib::Mesh& dem_mesh,
61 unsigned layer_id,
62 GeoLib::Raster const& raster) override;
63
66 void addLayerBoundaries(const MeshLib::Mesh& layer, std::size_t nLayers);
67
69 void removeCongruentElements(std::size_t nLayers,
70 std::size_t nElementsPerLayer);
71
72 std::vector<MeshLib::Node> _attribute_points;
73};
Container class for geometric objects.
Definition GEOObjects.h:46
Class Raster is used for managing raster data.
Definition Raster.h:39
A Surface is represented by Triangles. It consists of a reference to a vector of (pointers to) points...
LayeredMeshGenerator()=default
void removeCongruentElements(std::size_t nLayers, std::size_t nElementsPerLayer)
Removes duplicate 2D elements (possible due to outcroppings)
~LayeredVolume() override=default
std::vector< MeshLib::Node > _attribute_points
void addLayerToMesh(const MeshLib::Mesh &dem_mesh, unsigned layer_id, GeoLib::Raster const &raster) override
Adds another layer to the subsurface mesh.
bool createRasterLayers(const MeshLib::Mesh &mesh, const std::vector< GeoLib::Raster const * > &rasters, double minimum_thickness, double noDataReplacementValue=0.0) override
void addLayerBoundaries(const MeshLib::Mesh &layer, std::size_t nLayers)
LayeredVolume()=default
std::vector< MeshLib::Node > getAttributePoints() const