fshake3d
0.0.1
FreeformDensity3DSurfaceEditor
|
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