#include <cameramanipulator.h>
Inherited by CameraManipulatorFollow, CameraManipulatorRace, and CameraManipulatorTV.
Inheritance diagram for CameraManipulator:


Public Member Functions | |
| CameraManipulator (osg::Node *node, GlobalData &global, CameraHandle &cameraHandle) | |
| virtual const char * | className () const | 
| returns the classname of the manipulator it's NECCESSARY to define this funtion, otherwise the new manipulator WON'T WORK! (but ask me not why)   | |
| virtual void | setByMatrix (const osg::Matrixd &matrix) | 
| normally called only when this manipulator is choosed   | |
| virtual void | setByInverseMatrix (const osg::Matrixd &matrix) | 
| set the position of the matrix manipulator using a 4x4 Matrix.   | |
| virtual osg::Matrixd | getMatrix () const | 
| get the position of the manipulator as 4x4 Matrix.   | |
| virtual osg::Matrixd | getInverseMatrix () const | 
| get the position of the manipulator as a inverse matrix of the manipulator, typically used as a model view matrix.   | |
| virtual void | setNode (osg::Node *) | 
| is called every time the draw is updated.   | |
| virtual const osg::Node * | getNode () const | 
| virtual osg::Node * | getNode () | 
| virtual void | setHome (const osg::Vec3 &eye, const osg::Vec3 &view) | 
| set the home position of the camera. (and place it there)   | |
| virtual void | home (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us) | 
| place the camera at its home position   | |
| virtual void | init (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us) | 
| virtual bool | handle (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us) | 
| virtual void | getUsage (osg::ApplicationUsage &usage) const | 
| Get the keyboard and mouse usage of this manipulator.   | |
| virtual void | update () | 
| updates the camera module at every drawstep should be called from the simulation loop   | |
| virtual void | manipulateAgent (OsgHandle &osgHandle) | 
| manipulate agent if Manipulation is active (should be called every simulation step)   | |
Protected Member Functions | |
| virtual | ~CameraManipulator () | 
| virtual void | flushMouseEventStack () | 
| Reset the internal GUIEvent stack.   | |
| virtual void | addMouseEvent (const osgGA::GUIEventAdapter &ea) | 
| Add the current mouse GUIEvent to internal stack.   | |
| virtual void | computeMatrix () | 
| virtual bool | calcMovement () | 
| For the give mouse movement calculate the movement of the camera.   | |
| virtual bool | isWatchingAgentDefined () | 
| Checks if an agent is selected and if this agent is available.   | |
| virtual void | manageAgents (const int &fkey) | 
| This manages the robots, switching between them and so on Is normally called from handle(.   | |
| virtual void | calcMovementByAgent () | 
| This handles robot movements, so that the camera movemenent is right affected.   | |
| virtual void | setHomeViewByAgent () | 
| Sets the right view and eye if the robot has changed.   | |
| virtual void | setHomeEyeByAgent () | 
| virtual void | moveBehindAgent () | 
| moves behind the robot which is actually watched   | |
| virtual void | centerOnAgent () | 
| centers on the robot which is actually watched   | |
| virtual void | calcManipulationPoint (float x, float y) | 
| manipulates Agent by forces.   | |
Protected Attributes | |
| osg::ref_ptr< const osgGA::GUIEventAdapter > | event_old | 
| osg::ref_ptr< const osgGA::GUIEventAdapter > | event | 
| osg::ref_ptr< osg::Node > | node | 
| float | modelScale | 
| osg::Matrixd | pose | 
| CameraHandle & | camHandle | 
| GlobalData & | globalData | 
| double | degreeSmoothness | 
| double | lengthSmoothness | 
| double | degreeAccuracy | 
| double | lengthAccuracy | 
Left mouse button: Pan and tilt Right mouse button: forward and sideways Middle mouse button: up and sideways
It also enables to manipulate agents with forces
| CameraManipulator | ( | osg::Node * | node, | |
| GlobalData & | global, | |||
| CameraHandle & | cameraHandle | |||
| ) | 
| ~CameraManipulator | ( | ) |  [protected, virtual] | 
        
| void addMouseEvent | ( | const osgGA::GUIEventAdapter & | ea | ) |  [protected, virtual] | 
        
Add the current mouse GUIEvent to internal stack.
| void calcManipulationPoint | ( | float | x, | |
| float | y | |||
| ) |  [protected, virtual] | 
        
manipulates Agent by forces.
The given points are screen coords (-1 to 1) normalized.
| bool calcMovement | ( | ) |  [protected, virtual] | 
        
For the give mouse movement calculate the movement of the camera.
Return true is camera has moved and a redraw is required.
| void calcMovementByAgent | ( | ) |  [protected, virtual] | 
        
This handles robot movements, so that the camera movemenent is right affected.
should normally be overwritten by new cameramanipulator
Reimplemented in CameraManipulatorFollow, CameraManipulatorRace, and CameraManipulatorTV.
| void centerOnAgent | ( | ) |  [protected, virtual] | 
        
centers on the robot which is actually watched
| virtual const char* className | ( | ) |  const [inline, virtual] | 
        
returns the classname of the manipulator it's NECCESSARY to define this funtion, otherwise the new manipulator WON'T WORK! (but ask me not why)
Reimplemented in CameraManipulatorRace, and CameraManipulatorTV.
| void computeMatrix | ( | ) |  [protected, virtual] | 
        
| void flushMouseEventStack | ( | ) |  [protected, virtual] | 
        
Reset the internal GUIEvent stack.
| Matrixd getInverseMatrix | ( | ) |  const [virtual] | 
        
get the position of the manipulator as a inverse matrix of the manipulator, typically used as a model view matrix.
| Matrixd getMatrix | ( | ) |  const [virtual] | 
        
get the position of the manipulator as 4x4 Matrix.
| Node * getNode | ( | ) |  [virtual] | 
        
| const Node * getNode | ( | ) |  const [virtual] | 
        
| void getUsage | ( | osg::ApplicationUsage & | usage | ) |  const [virtual] | 
        
Get the keyboard and mouse usage of this manipulator.
| bool handle | ( | const osgGA::GUIEventAdapter & | ea, | |
| osgGA::GUIActionAdapter & | us | |||
| ) |  [virtual] | 
        
| void home | ( | const osgGA::GUIEventAdapter & | ea, | |
| osgGA::GUIActionAdapter & | us | |||
| ) |  [virtual] | 
        
place the camera at its home position
| void init | ( | const osgGA::GUIEventAdapter & | ea, | |
| osgGA::GUIActionAdapter & | us | |||
| ) |  [virtual] | 
        
| bool isWatchingAgentDefined | ( | ) |  [protected, virtual] | 
        
Checks if an agent is selected and if this agent is available.
This agent must be listed in the global agent list.
| void manageAgents | ( | const int & | fkey | ) |  [protected, virtual] | 
        
This manages the robots, switching between them and so on Is normally called from handle(.
..)
| void manipulateAgent | ( | OsgHandle & | osgHandle | ) |  [virtual] | 
        
manipulate agent if Manipulation is active (should be called every simulation step)
| void moveBehindAgent | ( | ) |  [protected, virtual] | 
        
moves behind the robot which is actually watched
| virtual void setByInverseMatrix | ( | const osg::Matrixd & | matrix | ) |  [inline, virtual] | 
        
set the position of the matrix manipulator using a 4x4 Matrix.
| void setByMatrix | ( | const osg::Matrixd & | matrix | ) |  [virtual] | 
        
normally called only when this manipulator is choosed
set the home position of the camera. (and place it there)
| void setHomeEyeByAgent | ( | ) |  [protected, virtual] | 
        
Reimplemented in CameraManipulatorTV.
| void setHomeViewByAgent | ( | ) |  [protected, virtual] | 
        
Sets the right view and eye if the robot has changed.
Is called from manageRobots(); should be overwritten by new cameramanipulator (if needed)
Reimplemented in CameraManipulatorFollow, and CameraManipulatorTV.
| void setNode | ( | osg::Node * | ) |  [virtual] | 
        
is called every time the draw is updated.
computes the movement of the camera, which is a difference between the desired pos and view and the actual pos and view.
| void update | ( | ) |  [virtual] | 
        
updates the camera module at every drawstep should be called from the simulation loop
CameraHandle& camHandle [protected]           | 
        
double degreeAccuracy [protected]           | 
        
double degreeSmoothness [protected]           | 
        
osg::ref_ptr<const osgGA::GUIEventAdapter> event [protected]           | 
        
osg::ref_ptr<const osgGA::GUIEventAdapter> event_old [protected]           | 
        
GlobalData& globalData [protected]           | 
        
double lengthAccuracy [protected]           | 
        
double lengthSmoothness [protected]           | 
        
float modelScale [protected]           | 
        
osg::ref_ptr<osg::Node> node [protected]           | 
        
osg::Matrixd pose [protected]           | 
        
 1.4.7