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 
11 namespace util
12 {
17  class Grid
18  {
19  private:
23  const int width_count_;
24 
28  const int height_count_;
29 
33  const int depth_count_;
34 
38  const double width_;
39 
43  const double height_;
44 
48  const double depth_;
49 
53  const double cell_width_;
54 
58  const double cell_height_;
59 
63  const double cell_depth_;
64 
68  std::vector<std::vector<std::vector<core::ObjectDataPtr>>> values_;
69  public:
77  Grid(int width_count, int height_count, double width, double height);
78 
88  Grid(int width_count, int height_count, int depth_count,
89  double width, double height, double depth);
90 
98  void SetValue(core::ObjectDataPtr value, int x, int y, int z = 0);
99 
107  void SetValue(core::ObjectDataPtr value,
108  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,
174  int& xi, int& yi, int& zi) const;
175 
176  //TODO comment
177  void Convolve2D(int vicinity, double* mask, double multiplier);
178  void Convolve3D(int vicinity, double* mask, double multiplier);
179  };
180 }
181 
182 
183 #endif //GBMOT_GRID_H
int GetDepthCount() const
Definition: Grid.cpp:93
Definition: FileIO.cpp:11
Definition: Grid.h:17
void PositionToIndex(double x, double y, double z, int &xi, int &yi, int &zi) const
Definition: Grid.cpp:43
void SetValue(core::ObjectDataPtr value, int x, int y, int z=0)
Definition: Grid.cpp:59
double GetWidth() const
Definition: Grid.cpp:98
double GetHeight() const
Definition: Grid.cpp:103
core::ObjectDataPtr GetValue(int x, int y, int z=0) const
Definition: Grid.cpp:71
double GetDepth() const
Definition: Grid.cpp:108
int GetWidthCount() const
Definition: Grid.cpp:83
Grid(int width_count, int height_count, double width, double height)
Definition: Grid.cpp:9
int GetHeightCount() const
Definition: Grid.cpp:88