OGS
StationBorehole.h
Go to the documentation of this file.
1 
15 #pragma once
16 
17 #include "Station.h"
18 
19 #include <list>
20 #include <string>
21 #include <vector>
22 
23 namespace GeoLib
24 {
31 class StationBorehole : public Station
32 {
33 public:
35  explicit StationBorehole(double x,
36  double y,
37  double z,
38  double const depth,
39  const std::string& name,
40  int date);
41  ~StationBorehole() override;
42 
44  static StationBorehole* createStation(const std::string& name,
45  double x,
46  double y,
47  double z,
48  double depth,
49  const std::string& date = "");
50 
51  // Returns the depth of the borehole
52  double getDepth() const { return _depth; }
53 
55  double getDate() const { return _date; }
56 
59  const std::vector<Point*>& getProfile() const { return _profilePntVec; }
60 
63  const std::vector<std::string>& getSoilNames() const { return _soilName; }
64 
66  void setDepth(double depth) { _depth = depth; }
67 
69  void addSoilLayer(double thickness, const std::string& soil_name);
70 
81  void addSoilLayer(double x,
82  double y,
83  double z,
84  const std::string& soil_name);
85 
86 private:
87  double _depth{0}; // depth of the borehole
88  int _date{0}; // date when the borehole has been drilled
89 
91  std::vector<std::string> _soilName;
92 
94  std::vector<Point*> _profilePntVec;
95 };
96 
97 bool isBorehole(GeoLib::Point const* pnt);
98 
99 } // namespace GeoLib
Definition of the Station class.
A borehole as a geometric object.
double getDate() const
Returns the date entry for the borehole.
const std::vector< std::string > & getSoilNames() const
static StationBorehole * createStation(const std::string &name, double x, double y, double z, double depth, const std::string &date="")
Creates a new borehole object based on the given parameters.
void addSoilLayer(double thickness, const std::string &soil_name)
Add a soil layer to the boreholes stratigraphy.
std::vector< Point * > _profilePntVec
Contains the points for the lower boundaries of all layers.
StationBorehole(double x, double y, double z, double const depth, const std::string &name, int date)
std::vector< std::string > _soilName
Contains the names for all the soil layers.
const std::vector< Point * > & getProfile() const
void setDepth(double depth)
Sets the depth of the borehole.
A Station (observation site) is basically a Point with some additional information.
Definition: Station.h:37
bool isBorehole(GeoLib::Point const *pnt)