VAT  3.0
Video Analysis Tool
parallelpiped.h
1  #ifndef _PARALLELPIPED_H_
2 #define _PARALLELPIPED_H_
3 
4 #include <set>
5 #include "geometric.h"
6 class SceneModel;
7 
8 class Parallelpiped {
9  public:
10  Parallelpiped();
11  ~Parallelpiped();
12  Parallelpiped& operator=(Parallelpiped& parall);
13  Parallelpiped *copy();
14  static void initLimits(int limits[4][4], int nlimits[4], int varlimrel[4]);
15  void getLimits(int limits[4][4], int nlimits[4], int varlimrel[4]);
16  void get_w_l(double& w, double& l);
17  void setReal3DPosition(point3D<double> *p);
18  void getFromInitial3DPoint(SceneModel *smodel, Rectangle<int> *bb2D, double x3D, double y3D, int point_index,
19  double angle, int beta_direction, double w, double l, double h);
20 
21  point2D<double> base_point[4]; // Four points forming the base of Parallelpiped.
22  point2D<double> _2D_proj_0[4]; // 2D projections of points in the base
23  point2D<double> _2D_proj_h[4]; // 2D projections of points in the base
24  double h; // Height of Parallelpiped.
25 };
26 
28 
29 #define PARALL_H(_parall) ((_parall)->h)
30 #define PARALL_X_i(_parall, _i) ((_parall)->base_point[_i].x)
31 #define PARALL_Y_i(_parall, _i) ((_parall)->base_point[_i].y)
32 #define PARALL_POINT_i(_parall, _i) &((_parall)->base_point[_i])
33 
34 #define PARALL_X2D_BASE_i(_parall, _i) ((_parall)->_2D_proj_0[_i].x)
35 #define PARALL_Y2D_BASE_i(_parall, _i) ((_parall)->_2D_proj_0[_i].y)
36 #define PARALL_2D_BASE_POINT_i(_parall, _i) &((_parall)->_2D_proj_0[_i])
37 
38 #define PARALL_X2D_H_i(_parall, _i) ((_parall)->_2D_proj_h[_i].x)
39 #define PARALL_Y2D_H_i(_parall, _i) ((_parall)->_2D_proj_h[_i].y)
40 #define PARALL_2D_H_POINT_i(_parall, _i) &((_parall)->_2D_proj_h[_i])
41 
42 #endif /* _Parallelpiped_H_ */
Definition: parallelpiped.h:8
Definition: calibration.h:51