9 #include <aliceVision/types.hpp>
10 #include <aliceVision/geometry/Pose3.hpp>
23 enum class ERigSubPoseStatus : std::uint8_t
35 inline std::string ERigSubPoseStatus_enumToString(ERigSubPoseStatus rigSubPoseStatus)
37 switch (rigSubPoseStatus)
39 case ERigSubPoseStatus::UNINITIALIZED:
40 return "uninitialized";
41 case ERigSubPoseStatus::ESTIMATED:
43 case ERigSubPoseStatus::CONSTANT:
46 throw std::out_of_range(
"Invalid rigSubPoseStatus enum");
54 inline ERigSubPoseStatus ERigSubPoseStatus_stringToEnum(
const std::string& rigSubPoseStatus)
56 std::string status = rigSubPoseStatus;
57 std::transform(status.begin(), status.end(), status.begin(), ::tolower);
59 if (status ==
"uninitialized")
60 return ERigSubPoseStatus::UNINITIALIZED;
61 if (status ==
"estimated")
62 return ERigSubPoseStatus::ESTIMATED;
63 if (status ==
"constant")
64 return ERigSubPoseStatus::CONSTANT;
66 throw std::out_of_range(
"Invalid rigSubPoseStatus : " + rigSubPoseStatus);
72 ERigSubPoseStatus
status = ERigSubPoseStatus::UNINITIALIZED;
101 explicit Rig(
unsigned int nbSubPoses = 0) { _subPoses.resize(nbSubPoses); }
108 bool operator==(
const Rig& other)
const {
return _subPoses == other._subPoses; }
118 if (subPose.status != ERigSubPoseStatus::UNINITIALIZED)
124 bool isFullyCalibrated()
const
128 if (subPose.status == ERigSubPoseStatus::UNINITIALIZED)
144 const std::vector<RigSubPose>&
getSubPoses()
const {
return _subPoses; }
172 assert(_subPoses.size() > index);
173 _subPoses[index] = rigSubPose;
183 subPose.status = ERigSubPoseStatus::UNINITIALIZED;
190 std::vector<RigSubPose> _subPoses;