camera.h

Go to the documentation of this file.
00001 
00015 #ifndef _CAMERA_H_
00016 #define _CAMERA_H_
00017 
00018 #include <Inventor/nodes/SoNode.h>
00019 #include <Inventor/nodes/SoRotationXYZ.h>
00020 
00021 #include "graphical_node.h"
00022 #include "time_updateable.h"
00023 #include "templates/observable.h"
00024 
00030 class Camera: public TimeUpdateable, public Templates::Observable<Camera>
00031 {
00032         private:
00033 
00035                 SoGroup *_rootNode;
00036 
00038                 SoRotationXYZ *_rotX;
00039 
00041                 SoRotationXYZ *_rotY;
00042 
00044                 float _angleX;
00045 
00047                 float _angleY;
00048 
00050                 float _maxAngleX;
00051 
00053                 float _maxAngleY;
00054 
00055         private:
00056 
00057                 // Disable copy constructor and assignment operator
00058                 Camera(const Camera &);
00059                 Camera & operator=(const Camera &);
00060 
00061         public:
00062 
00066                 Camera();
00067 
00071                 ~Camera();
00072 
00073         public:
00074 
00078                 float getAngleX() const { return _angleX; }
00079 
00083                 float getAngleY() const { return _angleY; }
00084 
00088                 SoGroup *getRootNode() { return _rootNode; }
00089 
00093                 const SoRotationXYZ *getRotationX() const { return _rotX; }
00094 
00098                 const SoRotationXYZ *getRotationY() const { return _rotY; }
00099 
00100                 // Override
00101                 virtual void timeUpdate(float dt);
00102 
00109                 void updateView(short x, short y);
00110 };
00111 
00112 #endif

Generated on Sat Dec 20 19:21:24 2008 for PGR2008 by  doxygen 1.5.6