diff options
Diffstat (limited to 'tracker-pt/ftnoir_tracker_pt_settings.h')
-rw-r--r-- | tracker-pt/ftnoir_tracker_pt_settings.h | 69 |
1 files changed, 30 insertions, 39 deletions
diff --git a/tracker-pt/ftnoir_tracker_pt_settings.h b/tracker-pt/ftnoir_tracker_pt_settings.h index d890bbd2..7efbe0c3 100644 --- a/tracker-pt/ftnoir_tracker_pt_settings.h +++ b/tracker-pt/ftnoir_tracker_pt_settings.h @@ -1,5 +1,5 @@ /* Copyright (c) 2012 Patrick Ruoff - * Copyright (c) 2014-2015 Stanislaw Halik <sthalik@misaki.pl> + * Copyright (c) 2014-2017 Stanislaw Halik <sthalik@misaki.pl> * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -9,60 +9,51 @@ #pragma once #include "options/options.hpp" +#include <opencv2/core.hpp> + using namespace options; struct settings_pt : opts { - value<QString> camera_name; - value<int> cam_res_x, - cam_res_y, - cam_fps, - threshold; - value<double> min_point_size, max_point_size; + enum model { + clip_right, clip_left, cap, + }; - value<int> m01_x, m01_y, m01_z; - value<int> m02_x, m02_y, m02_z; + value<int> threshold; + value<double> min_point_size, max_point_size; value<int> t_MH_x, t_MH_y, t_MH_z; - value<int> clip_ty, clip_tz, clip_by, clip_bz; - value<int> active_model_panel, cap_x, cap_y, cap_z; - - value<int> fov; - - value<bool> dynamic_pose; - value<int> init_phase_timeout; - value<bool> auto_threshold; + value<int> active_model_panel; settings_pt() : opts("tracker-pt"), - camera_name(b, "camera-name", ""), - cam_res_x(b, "camera-res-width", 640), - cam_res_y(b, "camera-res-height", 480), - cam_fps(b, "camera-fps", 30), threshold(b, "threshold-primary", 128), min_point_size(b, "min-point-size", 1), max_point_size(b, "max-point-size", 50), - m01_x(b, "m_01-x", 0), - m01_y(b, "m_01-y", 0), - m01_z(b, "m_01-z", 0), - m02_x(b, "m_02-x", 0), - m02_y(b, "m_02-y", 0), - m02_z(b, "m_02-z", 0), t_MH_x(b, "model-centroid-x", 0), t_MH_y(b, "model-centroid-y", 0), t_MH_z(b, "model-centroid-z", 0), - clip_ty(b, "clip-ty", 40), - clip_tz(b, "clip-tz", 30), - clip_by(b, "clip-by", 70), - clip_bz(b, "clip-bz", 80), - active_model_panel(b, "active-model-panel", 0), - cap_x(b, "cap-x", 40), - cap_y(b, "cap-y", 60), - cap_z(b, "cap-z", 100), - fov(b, "camera-fov", 56), - dynamic_pose(b, "dynamic-pose-resolution", true), - init_phase_timeout(b, "init-phase-timeout", 500), - auto_threshold(b, "automatic-threshold", true) + active_model_panel(b, "active-model-panel", 0) {} + + cv::Vec3d get_model_offset() + { + cv::Vec3d offset(t_MH_x, t_MH_y, t_MH_z); + if (offset[0] == 0 && offset[1] == 0 && offset[2] == 0) + { + int m = active_model_panel; + switch (model(m)) + { + default: + // cap + case cap: offset[0] = 0; offset[1] = 0; offset[2] = 0; break; + // clip + case clip_right: offset[0] = 135; offset[1] = 0; offset[2] = 0; break; + // left clip + case clip_left: offset[0] = -135; offset[1] = 0; offset[2] = 0; break; + } + } + return offset; + } }; |