fshake3d  0.0.1
FreeformDensity3DSurfaceEditor
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines
transform_LookAt.hpp
Go to the documentation of this file.
00001 #ifndef TRANSFORM_LOOK_AT_HPP
00002 #define TRANSFORM_LOOK_AT_HPP
00003 
00004 #include "math.hpp"
00005 
00006 class LookAt
00007 {
00008 public:
00009   LookAt();
00010 
00011   const Vec3d& getEye() const { return mEye; }
00012   const Vec3d& getCenter() const { return mCenter; }
00013   const Vec3d& getUp() const { return mUp; }
00014   void setEye(const Vec3d& eye) { mEye = eye; }
00015   void setCenter(const Vec3d& center) { mCenter = center; }
00016   void setUp(const Vec3d& up) { mUp = up; }
00017   void setDirection(const Vec3d& direction) { mEye = mCenter - direction; }
00018   void computeVectors();
00019   void computeTransform();
00020   void computeInverse();
00021   void computeTransformGL();
00022   const Matrix44d& getTransformMatrix() const { return mTransform; }
00023   const Matrix44d& getInverseMatrix() const { return mInverse; }
00024 protected:
00025   Vec3d  mEye;
00026   Vec3d  mCenter;
00027   Vec3d  mUp;
00028   Vec3d  mSide;
00029   Vec3d  mForward;
00030   Matrix44d mTransform;
00031   Matrix44d mInverse;
00032 };
00033 
00034 #endif // TRANSFORM_LOOK_AT_HPP