licornea_tools
relative_camera_positions.h
Go to the documentation of this file.
1 #ifndef LICORNEA_RELATIVE_CAMERA_POSITIONS_H_
2 #define LICORNEA_RELATIVE_CAMERA_POSITIONS_H_
3 
4 #include "../../../lib/common.h"
5 #include "../../../lib/json.h"
6 #include <utility>
7 #include <map>
8 #include <vector>
9 
10 namespace tlz {
11 
15  using key_type = std::pair<reference_view_index, target_view_index>;
16 
17  using reference_target_positions_type = std::map<reference_view_index, std::vector<std::pair<target_view_index, vec2>>>;
18  using target_reference_positions_type = std::map<target_view_index, std::vector<std::pair<reference_view_index, vec2>>>;
19 
20  std::map<key_type, vec2> positions;
21 
24 
25  vec2& position(const reference_view_index& ref_idx, const target_view_index& target_idx)
26  { return positions[std::make_pair(ref_idx, target_idx)]; }
27  const vec2& position(const reference_view_index& ref_idx, const target_view_index& target_idx) const
28  { return positions.at(std::make_pair(ref_idx, target_idx)); }
29 };
30 
33 
34 std::vector<view_index> get_reference_views(const relative_camera_positions&);
35 std::vector<view_index> get_target_views(const relative_camera_positions&);
36 
37 
38 
40 
41 }
42 
43 #endif
target_reference_positions_type to_target_reference_positions() const
std::vector< view_index > get_target_views(const relative_camera_positions &rcpos)
std::pair< reference_view_index, target_view_index > key_type
cv::Vec< real, 2 > vec2
Definition: common.h:22
std::map< target_view_index, std::vector< std::pair< reference_view_index, vec2 >>> target_reference_positions_type
relative_camera_positions relative_camera_positions_arg()
std::vector< view_index > get_reference_views(const relative_camera_positions &rcpos)
std::map< reference_view_index, std::vector< std::pair< target_view_index, vec2 >>> reference_target_positions_type
vec2 & position(const reference_view_index &ref_idx, const target_view_index &target_idx)
std::map< key_type, vec2 > positions
relative_camera_positions decode_relative_camera_positions(const json &j_rcpos)
reference_target_positions_type to_reference_target_positions() const
nlohmann::json json
Definition: json.h:11
json encode_relative_camera_positions(const relative_camera_positions &rcpos)
const vec2 & position(const reference_view_index &ref_idx, const target_view_index &target_idx) const