| 20 | struct InlierThresholdOptions; |
| 21 | |
| 22 | class OptionManager { |
| 23 | public: |
| 24 | explicit OptionManager(bool add_project_options = true); |
| 25 | void AddAllOptions(); |
| 26 | void AddDatabaseOptions(); |
| 27 | void AddImageOptions(); |
| 28 | void AddGlobalMapperOptions(); |
| 29 | void AddGlobalMapperFullOptions(); |
| 30 | void AddGlobalMapperResumeOptions(); |
| 31 | void AddGlobalMapperResumeFullOptions(); |
| 32 | void AddViewGraphCalibrationOptions(); |
| 33 | void AddRelativePoseEstimationOptions(); |
| 34 | void AddRotationEstimatorOptions(); |
| 35 | void AddTrackEstablishmentOptions(); |
| 36 | void AddGlobalPositionerOptions(); |
| 37 | void AddBundleAdjusterOptions(); |
| 38 | void AddTriangulatorOptions(); |
| 39 | void AddInlierThresholdOptions(); |
| 40 | |
| 41 | template <typename T> |
| 42 | void AddRequiredOption(const std::string& name, |
| 43 | T* option, |
| 44 | const std::string& help_text = ""); |
| 45 | template <typename T> |
| 46 | void AddDefaultOption(const std::string& name, |
| 47 | T* option, |
| 48 | const std::string& help_text = ""); |
| 49 | |
| 50 | void Reset(); |
| 51 | void ResetOptions(bool reset_paths); |
| 52 | |
| 53 | void Parse(int argc, char** argv); |
| 54 | |
| 55 | std::shared_ptr<std::string> database_path; |
| 56 | std::shared_ptr<std::string> image_path; |
| 57 | |
| 58 | std::shared_ptr<GlobalMapperOptions> mapper; |
| 59 | |
| 60 | private: |
| 61 | template <typename T> |
| 62 | void AddAndRegisterRequiredOption(const std::string& name, |
| 63 | T* option, |
| 64 | const std::string& help_text = ""); |
| 65 | template <typename T> |
| 66 | void AddAndRegisterDefaultOption(const std::string& name, |
| 67 | T* option, |
| 68 | const std::string& help_text = ""); |
| 69 | |
| 70 | template <typename T> |
| 71 | void RegisterOption(const std::string& name, const T* option); |
| 72 | |
| 73 | std::shared_ptr<boost::program_options::options_description> desc_; |
| 74 | |
| 75 | std::vector<std::pair<std::string, const bool*>> options_bool_; |
| 76 | std::vector<std::pair<std::string, const int*>> options_int_; |
| 77 | std::vector<std::pair<std::string, const double*>> options_double_; |
| 78 | std::vector<std::pair<std::string, const std::string*>> options_string_; |
| 79 |
nothing calls this directly
no outgoing calls
no test coverage detected