osgGA::DriveManipulator Class Reference

DriveManipulator is a camera manipulator which provides drive-like functionality. More...

Inheritance diagram for osgGA::DriveManipulator:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 DriveManipulator ()
virtual const char * className () const
 return the name of the object's class type.
virtual void setByMatrix (const osg::Matrixd &matrix)
 set the position of the matrix manipulator using a 4x4 Matrix.
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 *)
 Attach a node to the manipulator, automatically detaching any previously attached node.
virtual const osg::NodegetNode () const
 Return const node if attached.
virtual osg::NodegetNode ()
 Return node if attached.
virtual void computeHomePosition ()
 Compute the home position.
virtual void home (const GUIEventAdapter &ea, GUIActionAdapter &us)
 Move the camera to the default position.
virtual void init (const GUIEventAdapter &ea, GUIActionAdapter &us)
 Start/restart the manipulator.
virtual bool handle (const GUIEventAdapter &ea, GUIActionAdapter &us)
 Handle events, return true if handled, false otherwise.
virtual void getUsage (osg::ApplicationUsage &usage) const
 Get the keyboard and mouse usage of this manipulator.
void setModelScale (double in_ms)
double getModelScale () const
void setVelocity (double in_vel)
double getVelocity () const
void setHeight (double in_h)
double getHeight () const

Protected Types

enum  SpeedControlMode { USE_MOUSE_Y_FOR_SPEED, USE_MOUSE_BUTTONS_FOR_SPEED }

Protected Member Functions

virtual ~DriveManipulator ()
void flushMouseEventStack ()
 Reset the internal GUIEvent stack.
void addMouseEvent (const GUIEventAdapter &ea)
 Add the current mouse GUIEvent to internal stack.
void computePosition (const osg::Vec3d &eye, const osg::Vec3d &lv, const osg::Vec3d &up)
bool calcMovement ()
 For the give mouse movement calculate the movement of the camera.

Protected Attributes

osg::ref_ptr< const
GUIEventAdapter
_ga_t1
osg::ref_ptr< const
GUIEventAdapter
_ga_t0
osg::ref_ptr< osg::Node_node
double _modelScale
double _velocity
double _height
double _buffer
SpeedControlMode _speedMode
osg::Vec3d _eye
osg::Quat _rotation
double _pitch
double _distance
bool _pitchUpKeyPressed
bool _pitchDownKeyPressed


Detailed Description

DriveManipulator is a camera manipulator which provides drive-like functionality.

By default, the left mouse button accelerates, the right mouse button decelerates, and the middle mouse button (or left and right simultaneously) stops dead.


Member Enumeration Documentation

enum osgGA::DriveManipulator::SpeedControlMode [protected]

Enumerator:
USE_MOUSE_Y_FOR_SPEED 
USE_MOUSE_BUTTONS_FOR_SPEED 


Constructor & Destructor Documentation

osgGA::DriveManipulator::DriveManipulator (  ) 

virtual osgGA::DriveManipulator::~DriveManipulator (  )  [protected, virtual]


Member Function Documentation

virtual const char* osgGA::DriveManipulator::className (  )  const [inline, virtual]

return the name of the object's class type.

Must be defined by derived classes.

Reimplemented from osgGA::MatrixManipulator.

virtual void osgGA::DriveManipulator::setByMatrix ( const osg::Matrixd matrix  )  [virtual]

set the position of the matrix manipulator using a 4x4 Matrix.

Implements osgGA::MatrixManipulator.

virtual void osgGA::DriveManipulator::setByInverseMatrix ( const osg::Matrixd matrix  )  [inline, virtual]

set the position of the matrix manipulator using a 4x4 Matrix.

Implements osgGA::MatrixManipulator.

virtual osg::Matrixd osgGA::DriveManipulator::getMatrix (  )  const [virtual]

get the position of the manipulator as 4x4 Matrix.

Implements osgGA::MatrixManipulator.

virtual osg::Matrixd osgGA::DriveManipulator::getInverseMatrix (  )  const [virtual]

get the position of the manipulator as a inverse matrix of the manipulator, typically used as a model view matrix.

Implements osgGA::MatrixManipulator.

virtual void osgGA::DriveManipulator::setNode ( osg::Node  )  [virtual]

Attach a node to the manipulator, automatically detaching any previously attached node.

setNode(NULL) detaches previous nodes. May be ignored by manipulators which do not require a reference model.

Reimplemented from osgGA::MatrixManipulator.

virtual const osg::Node* osgGA::DriveManipulator::getNode (  )  const [virtual]

Return const node if attached.

Reimplemented from osgGA::MatrixManipulator.

virtual osg::Node* osgGA::DriveManipulator::getNode (  )  [virtual]

Return node if attached.

Reimplemented from osgGA::MatrixManipulator.

virtual void osgGA::DriveManipulator::computeHomePosition (  )  [virtual]

Compute the home position.

Reimplemented from osgGA::MatrixManipulator.

virtual void osgGA::DriveManipulator::home ( const GUIEventAdapter ,
GUIActionAdapter  
) [virtual]

Move the camera to the default position.

May be ignored by manipulators if home functionality is not appropriate.

Reimplemented from osgGA::MatrixManipulator.

virtual void osgGA::DriveManipulator::init ( const GUIEventAdapter ,
GUIActionAdapter  
) [virtual]

Start/restart the manipulator.

FIXME: what does this actually mean? Provide examples.

Reimplemented from osgGA::MatrixManipulator.

virtual bool osgGA::DriveManipulator::handle ( const GUIEventAdapter ea,
GUIActionAdapter us 
) [virtual]

Handle events, return true if handled, false otherwise.

Reimplemented from osgGA::MatrixManipulator.

virtual void osgGA::DriveManipulator::getUsage ( osg::ApplicationUsage usage  )  const [virtual]

Get the keyboard and mouse usage of this manipulator.

Reimplemented from osgGA::GUIEventHandler.

void osgGA::DriveManipulator::setModelScale ( double  in_ms  )  [inline]

double osgGA::DriveManipulator::getModelScale (  )  const [inline]

void osgGA::DriveManipulator::setVelocity ( double  in_vel  )  [inline]

double osgGA::DriveManipulator::getVelocity (  )  const [inline]

void osgGA::DriveManipulator::setHeight ( double  in_h  )  [inline]

double osgGA::DriveManipulator::getHeight (  )  const [inline]

void osgGA::DriveManipulator::flushMouseEventStack (  )  [protected]

Reset the internal GUIEvent stack.

void osgGA::DriveManipulator::addMouseEvent ( const GUIEventAdapter ea  )  [protected]

Add the current mouse GUIEvent to internal stack.

void osgGA::DriveManipulator::computePosition ( const osg::Vec3d eye,
const osg::Vec3d lv,
const osg::Vec3d up 
) [protected]

bool osgGA::DriveManipulator::calcMovement (  )  [protected]

For the give mouse movement calculate the movement of the camera.

Return true is camera has moved and a redraw is required.


Member Data Documentation

osg::ref_ptr<const GUIEventAdapter> osgGA::DriveManipulator::_ga_t1 [protected]

osg::ref_ptr<const GUIEventAdapter> osgGA::DriveManipulator::_ga_t0 [protected]

osg::ref_ptr<osg::Node> osgGA::DriveManipulator::_node [protected]

double osgGA::DriveManipulator::_modelScale [protected]

double osgGA::DriveManipulator::_velocity [protected]

double osgGA::DriveManipulator::_height [protected]

double osgGA::DriveManipulator::_buffer [protected]

SpeedControlMode osgGA::DriveManipulator::_speedMode [protected]

osg::Vec3d osgGA::DriveManipulator::_eye [protected]

osg::Quat osgGA::DriveManipulator::_rotation [protected]

double osgGA::DriveManipulator::_pitch [protected]

double osgGA::DriveManipulator::_distance [protected]

bool osgGA::DriveManipulator::_pitchUpKeyPressed [protected]

bool osgGA::DriveManipulator::_pitchDownKeyPressed [protected]


The documentation for this class was generated from the following file:
Generated at Sun Oct 14 02:12:21 2007 for the OpenSceneGraph by doxygen 1.5.3.