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/Camera.h | |
parent | 0f6b76cf2125828ce11ec9f6f47cfc26860d3571 (diff) |
remove boost::variant stuff. trim code. add 'vector cam' cmdline option
Diffstat (limited to 'src/Camera.h')
-rw-r--r-- | src/Camera.h | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/Camera.h b/src/Camera.h index 2d2b18f..8dd6f68 100644 --- a/src/Camera.h +++ b/src/Camera.h @@ -2,19 +2,12 @@ #define OPENSCAD_CAMERA_H_ // Cameras -// Variant design is similar to value.h/value.cc -// see GLView.cc / export_png.cc / openscad.cc for usage +// For usage, see GLView.cc / export_png.cc / openscad.cc #include <vector> #include <Eigen/Geometry> #include <boost/variant.hpp> -class NullCamera -{ -public: - NullCamera(){} -}; - class GimbalCamera { public: @@ -24,7 +17,7 @@ public: object_rot << 35,0,25; viewer_distance = 500; } - void setup( std::vector<double> d ) + GimbalCamera( std::vector<double> d ) { assert( d.size() == 7 ); object_trans << d[0], d[1], d[2]; @@ -46,6 +39,12 @@ public: eye = center - 500 * cameradir; // "up" not currently used } + VectorCamera( std::vector<double> d ) + { + assert( d.size() == 6 ); + eye << d[0], d[1], d[2]; + center << d[3], d[4], d[5]; + } Eigen::Vector3d eye; Eigen::Vector3d center; // (aka 'target') Eigen::Vector3d up; @@ -54,11 +53,12 @@ public: class Camera { public: - enum CameraType { NONE, GIMBAL, VECTOR }; - typedef boost::variant<NullCamera, GimbalCamera, VectorCamera> CamVariant; - CamVariant value; - Camera() {} - CameraType type() { return static_cast<CameraType>(value.which()); } + enum CameraType { NONE, GIMBAL, VECTOR } type; + Camera() { type = Camera::NONE; } + void set( VectorCamera &c ) { vcam = c; type = Camera::VECTOR; } + void set( GimbalCamera &c ) { gcam = c; type = Camera::GIMBAL; } + GimbalCamera gcam; + VectorCamera vcam; }; |