MineLink
 All Data Structures Functions Variables Pages
filters.h
1 #ifndef __FILTERS_H__
2 #define __FILTERS_H__
3 #include <algorithm>
4 #include "../../data_structures/bm/blockmodel.h"
5 using namespace std;
6 
7 
8 
9 
10 namespace delphos{
11 
16 public:
22  virtual bool Eval(const delphos::Block& block)const;
26  virtual ~BlockFilter();
27 };
28 
33 protected:
34  const double _dx;
35  const double _dy;
36  const double _dz;
37  const double _ang;
38  double _xmax;
39  double _xmin;
40  double _ymax;
41  double _ymin;
42  double _zmax;
43  double _zmin;
44  int _lvlxmax;
45  int _lvlxmin;
46  int _lvlymax;
47  int _lvlymin;
48 public:
61  AccessibilityFilter(const double& vertical_angle_degrees,const double& deltax,const double& deltay,const double& deltaz,delphos::BlockModel & bm);
67  virtual bool Eval(const delphos::Block& block) const;
68 };
69 
70 
75 protected:
76  vector<float> _axis_min;
77  vector<float> _axis_max;
78  vector<unsigned short> _axis;
79  vector<bool> _axis_strictlb;
81 
82 public:
91  AxisRangeFilter(const char& axis,const float& min_value,const float& max_value,const bool& strictlb=true);
100  void AddAxisRange(const char& axis,const float& min_value,const float& max_value,const bool& strictlb=true);
106  virtual bool Eval(const delphos::Block& block) const;
107 };
108 
109 
114 protected:
115  vector<string> _attr_name;
116  vector<float> _min;
117  vector<float> _max;
118  vector<bool> _strictlb;
119 public:
128  RangeFilter(const string& attr_name,const float& min_value,const float& max_value,const bool& strictlb=true);
137  void AddRange(const string& attr_name,const float& min_value,const float& max_value,const bool& strictlb=true);
143  virtual bool Eval(const delphos::Block& block) const;
144 };
145 
150 public:
163  virtual bool Eval(const delphos::Block& block) const;
164 };
165 
166 
167 
168 }
169 #endif
A utility class to access blocks individually.
Definition: blockmodel.h:1390
Abstracts range filter function.
Definition: filters.h:113
Abstracts a container of blocks as a table with arbitrary number of attributes that can be accessed b...
Definition: blockmodel.h:62
Abstracts the intersection of an Accessibility and a Range filter function.
Definition: filters.h:149
Abstracts range filter function for axis.
Definition: filters.h:74
Abstracts functions to do block selection.
Definition: filters.h:15
Abstracts accessibility filter function.
Definition: filters.h:32