diff options
Diffstat (limited to 'tracker-pt/point_tracker.h')
-rw-r--r-- | tracker-pt/point_tracker.h | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/tracker-pt/point_tracker.h b/tracker-pt/point_tracker.h index 2757f22c..48c7617e 100644 --- a/tracker-pt/point_tracker.h +++ b/tracker-pt/point_tracker.h @@ -64,8 +64,6 @@ public: cv::Vec3f u; // unit vector perpendicular to M01,M02-plane cv::Matx22f P; - - enum Model { Clip = 0, Cap = 1, Custom = 2 }; PointModel(settings_pt& s) { @@ -80,26 +78,32 @@ public: float s22 = M02.dot(M02); P = 1.0/(s11*s22-s12*s12) * cv::Matx22f(s22, -s12, -s12, s11); } - + void set_model(settings_pt& s) { - switch (s.active_model_panel) + enum { Cap = 0, ClipRight = 1, ClipLeft = 2 }; + + switch (s.model_used) { - case Clip: - M01 = cv::Vec3f(0, static_cast<double>(s.clip_ty), -static_cast<double>(s.clip_tz)); - M02 = cv::Vec3f(0, -static_cast<double>(s.clip_by), -static_cast<double>(s.clip_bz)); - break; + default: case Cap: - M01 = cv::Vec3f(-static_cast<double>(s.cap_x), -static_cast<double>(s.cap_y), -static_cast<double>(s.cap_z)); - M02 = cv::Vec3f(static_cast<double>(s.cap_x), -static_cast<double>(s.cap_y), -static_cast<double>(s.cap_z)); + { + const double x = 60, y = 90, z = 95; + M01 = cv::Vec3f(-x, -y, z); + M02 = cv::Vec3f(x, -y, z); break; - case Custom: - M01 = cv::Vec3f(s.m01_x, s.m01_y, s.m01_z); - M02 = cv::Vec3f(s.m02_x, s.m02_y, s.m02_z); + } + case ClipLeft: + case ClipRight: + { + const double a = 27, b = 43, c = 62, d = 74; + M01 = cv::Vec3f(0, b, -a); + M02 = cv::Vec3f(0, -c, -d); break; } + } } - + void get_d_order(const std::vector<cv::Vec2f>& points, int* d_order, cv::Vec2f d) const; }; |