OGS
LayeredVolume.h
Go to the documentation of this file.
1
15#pragma once
16
17#include <string>
18#include <vector>
19
21#include "MeshLib/Node.h"
22
23namespace GeoLib
24{
25class GEOObjects;
26class Surface;
27} // namespace GeoLib
28
33{
34public:
35 LayeredVolume() = default;
36 ~LayeredVolume() override = default;
37
57 bool createRasterLayers(const MeshLib::Mesh& mesh,
58 const std::vector<GeoLib::Raster const*>& rasters,
59 double minimum_thickness,
60 double noDataReplacementValue = 0.0) override;
61
64 std::vector<MeshLib::Node> getAttributePoints() const
65 {
66 return _attribute_points;
67 }
68
69private:
71 void addLayerToMesh(const MeshLib::Mesh& dem_mesh,
72 unsigned layer_id,
73 GeoLib::Raster const& raster) override;
74
77 void addLayerBoundaries(const MeshLib::Mesh& layer, std::size_t nLayers);
78
80 void removeCongruentElements(std::size_t nLayers,
81 std::size_t nElementsPerLayer);
82
83 std::vector<MeshLib::Node> _attribute_points;
84};
Definition of the SubsurfaceMapper class.
Definition of the Node class.
Class Raster is used for managing raster data.
Definition Raster.h:49
Base class for creation of 3D subsurface meshes based on raster data.
Creates a volume geometry from 2D mesh layers based on raster data.
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