Tracore
Grid.h
1 //
2 // Created by wrede on 06.06.16.
3 //
4 
5 #ifndef GBMOT_GRID_H
6 #define GBMOT_GRID_H
7 
8 #include <vector>
9 #include "../core/ObjectData.h"
10 #include "Filter2D.h"
11 
12 namespace util
13 {
18  class Grid
19  {
20  private:
24  const int width_count_;
25 
29  const int height_count_;
30 
34  const int depth_count_;
35 
39  const double width_;
40 
44  const double height_;
45 
49  const double depth_;
50 
54  const double cell_width_;
55 
59  const double cell_height_;
60 
64  const double cell_depth_;
65 
69  std::vector<std::vector<std::vector<core::ObjectDataPtr>>> values_;
70  public:
78  Grid(int width_count, int height_count, double width, double height);
79 
89  Grid(int width_count, int height_count, int depth_count,
90  double width, double height, double depth);
91 
99  void SetValue(core::ObjectDataPtr value, int x, int y, int z = 0);
100 
108  void SetValue(core::ObjectDataPtr value, double x, double y, double z = 0);
109 
117  core::ObjectDataPtr GetValue(int x, int y, int z = 0) const;
118 
126  core::ObjectDataPtr GetValue(double x, double y, double z = 0.0) const;
127 
132  int GetWidthCount() const;
133 
138  int GetHeightCount() const;
139 
144  int GetDepthCount() const;
145 
150  double GetWidth() const;
151 
156  double GetHeight() const;
157 
162  double GetDepth() const;
163 
173  void PositionToIndex(double x, double y, double z, int& xi, int& yi, int& zi) const;
174 
182  void Convolve2D(int vicinity, double* mask, double multiplier);
183 
189  void Convolve2D(util::Filter2D & filter);
190 
198  void Convolve3D(int vicinity, double* mask, double multiplier);
199  };
200 }
201 
202 
203 #endif //GBMOT_GRID_H
int GetWidthCount() const
Definition: Grid.cpp:83
core::ObjectDataPtr GetValue(int x, int y, int z=0) const
Definition: Grid.cpp:71
Definition: FileIO.cpp:11
Definition: Filter2D.h:17
double GetWidth() const
Definition: Grid.cpp:98
Definition: Grid.h:18
double GetDepth() const
Definition: Grid.cpp:108
int GetDepthCount() const
Definition: Grid.cpp:93
double GetHeight() const
Definition: Grid.cpp:103
void SetValue(core::ObjectDataPtr value, int x, int y, int z=0)
Definition: Grid.cpp:59
int GetHeightCount() const
Definition: Grid.cpp:88
Grid(int width_count, int height_count, double width, double height)
Definition: Grid.cpp:9
void Convolve3D(int vicinity, double *mask, double multiplier)
Definition: Grid.cpp:157
void Convolve2D(int vicinity, double *mask, double multiplier)
Definition: Grid.cpp:113
void PositionToIndex(double x, double y, double z, int &xi, int &yi, int &zi) const
Definition: Grid.cpp:43