diff options
author | don bright <hugh.m.bright@gmail.com> | 2013-03-03 16:11:56 (GMT) |
---|---|---|
committer | don bright <hugh.m.bright@gmail.com> | 2013-03-03 16:11:56 (GMT) |
commit | bfae32fe9909446cb4254fc5a5d953227736575a (patch) | |
tree | 14dcbdf0077765645fa9e9b65b7d26e9d2f92b20 /src/openscad.cc | |
parent | 0f6b76cf2125828ce11ec9f6f47cfc26860d3571 (diff) |
remove boost::variant stuff. trim code. add 'vector cam' cmdline option
Diffstat (limited to 'src/openscad.cc')
-rw-r--r-- | src/openscad.cc | 54 |
1 files changed, 38 insertions, 16 deletions
diff --git a/src/openscad.cc b/src/openscad.cc index 92ddcb7..5c8fe31 100644 --- a/src/openscad.cc +++ b/src/openscad.cc @@ -98,6 +98,43 @@ using std::vector; using boost::lexical_cast; using boost::is_any_of; +Camera determine_camera( po::variables_map vm ) +{ + Camera camera; + + if (vm.count("gimbalcam")) { + std::cout << "x:" << vm["gimbalcam"].as<string>().c_str() << "\n"; + vector<string> strs; + vector<double> cam_parameters; + split(strs, vm["gimbalcam"].as<string>(), is_any_of(",")); + if ( strs.size() != 7 ) { + fprintf(stderr,"Need 7 numbers for gimbalcam\n"); + } else { + BOOST_FOREACH(string &s, strs) + cam_parameters.push_back(lexical_cast<double>(s)); + GimbalCamera gcam( cam_parameters ); + camera.set( gcam ); + } + } + + if (vm.count("vectorcam")) { + std::cout << "x:" << vm["vectorcam"].as<string>().c_str() << "\n"; + vector<string> strs; + vector<double> cam_parameters; + split(strs, vm["vectorcam"].as<string>(), is_any_of(",")); + if ( strs.size() != 6 ) { + fprintf(stderr,"Need 6 numbers for vectorcam\n"); + } else { + BOOST_FOREACH(string &s, strs) + cam_parameters.push_back(lexical_cast<double>(s)); + VectorCamera vcam( cam_parameters ); + camera.set( vcam ); + } + } + + return camera; +} + int main(int argc, char **argv) { int rc = 0; @@ -134,8 +171,6 @@ int main(int argc, char **argv) const char *filename = NULL; const char *output_file = NULL; const char *deps_output_file = NULL; - Camera camera; - camera.value = NullCamera(); po::options_description desc("Allowed options"); desc.add_options() @@ -217,20 +252,7 @@ int main(int argc, char **argv) currentdir = boosty::stringy(fs::current_path()); - if (vm.count("gimbalcam")) { - std::cout << "x:" << vm["gimbalcam"].as<string>().c_str() << "\n"; - vector<string> strs; - vector<double> nums; - split(strs, vm["gimbalcam"].as<string>(), is_any_of(",")); - if ( strs.size() != 7 ) { - fprintf(stderr,"Need 7 numbers for gimbalcam\n"); - } else { - BOOST_FOREACH(string &s, strs) nums.push_back(lexical_cast<double>(s)); - GimbalCamera gcam; - gcam.setup( nums ); - camera.value = gcam; - } - } + Camera camera = determine_camera( vm ); QDir exdir(QApplication::instance()->applicationDirPath()); #ifdef Q_WS_MAC |