MineLink
 All Data Structures Functions Variables Pages
slopedef.h
1 #ifndef __SLOPE_DEF_H__
2 #define __SLOPE_DEF_H__
3 
4 #include <vector>
5 #include <map>
6 #include "rosetta.h"
7 #include "../bm/blocksel.h"
8 
9 using std::vector;
10 using std::map;
11 
12 namespace delphos {
13 
24 private:
25  map<double,RosettaSlope> _rosettas;
26  string _angle_attr;
27  double _max_zdiff;
28  double _dx;
29  double _dy;
30  double _dz;
31  unsigned int _levels;
32  const BlockSelection* _bs;
33 
34 public:
35 
44  SlopeDefinition(const string& rosetta_attribute, const double & max_z_diff);
45 
57  SlopeDefinition(const string& rosetta_attribute, const double & max_z_diff, const delphos::BlockSelection& bs);
58 
74  SlopeDefinition(const string& rosetta_attribute,
75  const unsigned int & levels,
76  const double & dx,
77  const double & dy,
78  const double & dz);
94  SlopeDefinition(const string& rosetta_attribute,
95  const unsigned int & levels,
96  const double & dx,
97  const double & dy,
98  const double & dz,
99  const delphos::BlockSelection& bs);
100 
111  SlopeDefinition(const double & angle_degrees, const double & max_z_diff);
112 
121  SlopeDefinition(const double & angle_degrees, const double & max_z_diff,const delphos::BlockSelection& bs);
122 
123 
140  const double & angle_degrees,
141  const unsigned int & levels,
142  const double & dx,
143  const double & dy,
144  const double & dz);
145 
162  const double & angle_degrees,
163  const unsigned int & levels,
164  const double & dx,
165  const double & dy,
166  const double & dz,
167  const delphos::BlockSelection& bs);
168 
172  virtual ~SlopeDefinition();
173 
180  bool AddRosetta(const double& attr_value,const delphos::RosettaSlope& rosetta);
181 
182 
186  string RosettaAttribute() const;
187 
188  #ifndef DOXYGEN
189  delphos::RosettaSlope* GetRosetta(const double& attr_value);
190  #endif
191 
196  delphos::RosettaSlope GetRosetta(const double& attr_value) const;
197 
201  map<double,delphos::RosettaSlope> GetRosettas() const;
202 
206  unsigned long NumRosettas() const;
207 
212  vector<double> RosettaValues();
213 
217  vector<double> GetRosettaValues();
218 
219  #ifndef DOXYGEN
220  vector<double> RosettaValues() const;
221  #endif
222 
225  double Getdx() const;
226 
230  double Getdy() const;
231 
235  double Getdz() const;
236 
240  unsigned int GetNumLevels() const;
241 
245  double GetMaxZDiff() const;
246 
250  const delphos::BlockSelection* GetBlockSelection() const;
251 };
252 
253 }
254 
255 #endif
Abstracts a set of blocks (subset of a blockmodel).
Definition: blocksel.h:33
This class allows to store different slope angles depending on azimuth.
Definition: rosetta.h:18
This class defines a slope precedence.
Definition: slopedef.h:23
SlopeDefinition(const string &rosetta_attribute, const double &max_z_diff)
Creates a new SlopeDefinition instance that defines a slope precedence of rosetta type...
Definition: slopedef.cpp:14