osgGA::DriveManipulator Class Reference

Inheritance diagram for osgGA::DriveManipulator:

osgGA::MatrixManipulator osgGA::GUIEventHandler osg::NodeCallback osg::Drawable::EventCallback osg::Object osg::Object osg::Referenced osg::Referenced List of all members.

Public Member Functions

 DriveManipulator ()
virtual const char * className () const
virtual void setByMatrix (const osg::Matrixd &matrix)
virtual void setByInverseMatrix (const osg::Matrixd &matrix)
virtual osg::Matrixd getMatrix () const
virtual osg::Matrixd getInverseMatrix () const
virtual void setNode (osg::Node *)
virtual const osg::NodegetNode () const
virtual osg::NodegetNode ()
virtual void computeHomePosition ()
virtual void home (const GUIEventAdapter &ea, GUIActionAdapter &us)
virtual void init (const GUIEventAdapter &ea, GUIActionAdapter &us)
virtual bool handle (const GUIEventAdapter &ea, GUIActionAdapter &us)
virtual void getUsage (osg::ApplicationUsage &usage) const
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

 USE_MOUSE_Y_FOR_SPEED
 USE_MOUSE_BUTTONS_FOR_SPEED
enum  SpeedControlMode { USE_MOUSE_Y_FOR_SPEED, USE_MOUSE_BUTTONS_FOR_SPEED }

Protected Member Functions

virtual ~DriveManipulator ()
void flushMouseEventStack ()
void addMouseEvent (const GUIEventAdapter &ea)
void computePosition (const osg::Vec3d &eye, const osg::Vec3d &lv, const osg::Vec3d &up)
bool calcMovement ()

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

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

Add the current mouse GUIEvent to internal stack.

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.

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::computeHomePosition (  )  [virtual]

Compute the home position.

Reimplemented from osgGA::MatrixManipulator.

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

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

Reset the internal GUIEvent stack.

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

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 osg::Matrixd osgGA::DriveManipulator::getMatrix (  )  const [virtual]

get the position of the manipulator as 4x4 Matrix.

Implements osgGA::MatrixManipulator.

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

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

Return node if attached.

Reimplemented from osgGA::MatrixManipulator.

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

Return const node if attached.

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.

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

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::home ( const GUIEventAdapter ea,
GUIActionAdapter us 
) [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 ea,
GUIActionAdapter us 
) [virtual]

Start/restart the manipulator. FIXME: what does this actually mean? Provide examples.

Reimplemented from 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 void osgGA::DriveManipulator::setByMatrix ( const osg::Matrixd matrix  )  [virtual]

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

Implements osgGA::MatrixManipulator.

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

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

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.

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


Member Data Documentation

double osgGA::DriveManipulator::_buffer [protected]

double osgGA::DriveManipulator::_distance [protected]

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

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

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

double osgGA::DriveManipulator::_height [protected]

double osgGA::DriveManipulator::_modelScale [protected]

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

double osgGA::DriveManipulator::_pitch [protected]

bool osgGA::DriveManipulator::_pitchDownKeyPressed [protected]

bool osgGA::DriveManipulator::_pitchUpKeyPressed [protected]

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

SpeedControlMode osgGA::DriveManipulator::_speedMode [protected]

double osgGA::DriveManipulator::_velocity [protected]


The documentation for this class was generated from the following file:
Generated on Sun Oct 1 13:17:09 2006 for openscenegraph by  doxygen 1.4.7