39 inline int getArgc()
const {
return this->argc_; }
40 inline char**
getArgv() {
return this->argv_; }
44 if (std::is_same<T, bool>::value) {
45 options_bool_.emplace_back(
name,
46 reinterpret_cast<const bool*
>(option));
47 }
else if (std::is_same<T, int>::value) {
48 options_int_.emplace_back(
name,
49 reinterpret_cast<const int*
>(option));
50 }
else if (std::is_same<T, double>::value) {
51 options_double_.emplace_back(
52 name,
reinterpret_cast<const double*
>(option));
53 }
else if (std::is_same<T, std::string>::value) {
54 if (!
reinterpret_cast<const std::string*
>(option)->empty()) {
55 options_string_.emplace_back(
56 name,
reinterpret_cast<const std::string*
>(option));
59 std::cerr <<
"Unsupported option type" <<
std::endl;
74 exhaustive_matching_options);
79 sequential_matching_options);
88 transitive_matching_options);
93 vocab_tree_matching_options);
98 image_pairs_matching_options);
114 delaunay_meshing_options);
119 for (
int i = 0; i < argc; ++i) {
128 static void SetValue(
const std::string& value,
int argc_,
char** argv_) {
129 argv_[argc_] =
new char[value.size() + 1];
130 std::copy(value.begin(), value.end(), argv_[argc_]);
131 argv_[argc_][value.size()] =
'\0';
135 inline void releaseOptions() {
136 if (this->argc_ > 0 && this->argv_) {
142 inline unsigned long getParametersCount() {
143 return static_cast<unsigned long>(
144 options_int_.size() + options_bool_.size() +
145 options_double_.size() + options_string_.size());
151 std::vector<std::pair<std::string, const bool*>> options_bool_;
152 std::vector<std::pair<std::string, const int*>> options_int_;
153 std::vector<std::pair<std::string, const double*>> options_double_;
154 std::vector<std::pair<std::string, const std::string*>> options_string_;
void addDelaunayMeshingOptions(const colmap::mvs::DelaunayMeshingOptions &delaunay_meshing_options)
static void ReleaseOptions(int argc, char **argv)
void addBundleAdjustmentOptions(const colmap::BundleAdjustmentOptions &bundle_adjustment_options)
void addExtractionOptions(const colmap::ImageReaderOptions &image_reader_options, const colmap::SiftExtractionOptions &sift_extraction_options)
void addStereoFusionOptions(const colmap::mvs::StereoFusionOptions &stereo_fusion_options)
void addSequentialMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options, const colmap::SequentialMatchingOptions &sequential_matching_options)
void addMapperOptions(const colmap::IncrementalMapperOptions &incremental_mapper_options)
void addImagePairsMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options, const colmap::ImagePairsMatchingOptions &image_pairs_matching_options)
void addExhaustiveMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options, const colmap::ExhaustiveMatchingOptions &exhaustive_matching_options)
void addPoissonMeshingOptions(const colmap::mvs::PoissonMeshingOptions &poisson_meshing_options)
void registerOption(const std::string &name, const T *option)
void addVocabTreeMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options, const colmap::VocabTreeMatchingOptions &vocab_tree_matching_options)
void addSpatialMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options, const colmap::SpatialMatchingOptions &spatial_matching_options)
void addTransitiveMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options, const colmap::TransitiveMatchingOptions &transitive_matching_options)
static void SetValue(const std::string &value, int argc_, char **argv_)
void addMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options)
void addPatchMatchStereoOptions(const colmap::mvs::PatchMatchOptions &patch_match_options)
QTextStream & endl(QTextStream &stream)
Generic file read and write utility for python interface.