diff options
author | don bright <hugh.m.bright@gmail.com> | 2013-02-27 06:37:37 (GMT) |
---|---|---|
committer | don bright <hugh.m.bright@gmail.com> | 2013-02-27 06:37:37 (GMT) |
commit | 13b0fe4b3f8e0367f02a982deb5be695ccd00c80 (patch) | |
tree | f834a15d8ed4d37f23882ff60a2e2c08ea4f53f2 /src/linalg.h | |
parent | c84b0d21842cbd09a46c80e23a2f1a3fc2a04592 (diff) |
rework Camera using boost::variant. first working --gimbalcam version
Diffstat (limited to 'src/linalg.h')
-rw-r--r-- | src/linalg.h | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/src/linalg.h b/src/linalg.h index 31cd922..1f9ed30 100644 --- a/src/linalg.h +++ b/src/linalg.h @@ -40,57 +40,4 @@ public: bool isValid() const { return this->minCoeff() >= 0.0f; } }; - - -// FIXME - for camera, use boost::variant like in value.cc - -#include <vector> - - -class Camera -{ -public: - enum camera_type_e { GIMBAL_CAMERA, VECTOR_CAMERA, NULL_CAMERA } camtype; - Camera() { camtype = NULL_CAMERA; } - virtual ~Camera() {} // only prevent 'not polymorphic' compile error -}; - -class GimbalCamera : public Camera -{ -public: - GimbalCamera() - { - camtype = GIMBAL_CAMERA; - object_trans << 0,0,0; - object_rot << 35,0,25; - viewer_distance = 500; - } - void setup( std::vector<double> d ) - { - assert( d.size() == 7 ); - object_trans << d[0], d[1], d[2]; - object_rot << d[3], d[4], d[5]; - viewer_distance = d[6]; - } - Eigen::Vector3d object_trans; - Eigen::Vector3d object_rot; - double viewer_distance; -}; - -class VectorCamera : public Camera -{ -public: - VectorCamera() - { - camtype = VECTOR_CAMERA; - center << 0,0,0; - Eigen::Vector3d cameradir(1, 1, -0.5); - eye = center - 500 * cameradir; - // "up" not currently used - } - Eigen::Vector3d eye; - Eigen::Vector3d center; // (aka 'target') - Eigen::Vector3d up; -}; - #endif |