OSDN Git Service

3aecac8a2508d833d39e8f06dd49b1b1cd4e124a
[moflib/moflib.git] / moflib-1.0 / moflib / moflib / mof / Camera.hpp
1 #ifndef MOF_CAMERA_HPP
2 #define mOF_CAMERA_HPP
3 #include "mof/Vector3D.hpp"
4 #include "mof/stream/Manipulator.hpp"
5 #include <boost/scoped_ptr.hpp>
6 #include "mof/Matrix3D.hpp"
7
8
9 namespace mof{
10
11
12         class Camera
13         {
14                 struct Impl;
15                 boost::scoped_ptr<Impl> m_pImpl;
16
17         public:
18                 typedef std::shared_ptr<Camera> ptr;
19                 Camera(
20                         const mof::Manipulator<mof::Vector3D>::Handler& eye , 
21                         const mof::Manipulator<mof::Vector3D>::Handler& center ,
22                         const mof::Manipulator<mof::Vector3D>::Handler& up );
23                 Camera(const mof::Vector3D& eye , const mof::Vector3D& center , const mof::Vector3D& up);
24                 virtual ~Camera();
25
26                 mof::Matrix3D getViewMatrix() const;
27
28                 void setEye(const mof::Manipulator<mof::Vector3D>::Handler& eye);
29                 void setEye(const mof::Vector3D& eye);
30                 void setCenter(const mof::Manipulator<mof::Vector3D>::Handler& center);
31                 void setCenter(const mof::Vector3D& center);
32                 void setUp(const mof::Manipulator<mof::Vector3D>::Handler& up);
33                 void setUp(const mof::Vector3D& up);
34
35                 mof::Vector3D getEye() const; 
36                 mof::Vector3D getCenter() const; 
37                 mof::Vector3D getUp() const; 
38
39                 virtual void setFrameNumber(mof::FrameNumber frame);
40                 virtual void update();
41
42         };
43
44 }
45
46 #endif