Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

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]
 

Enumeration values:
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 at Thu Nov 24 16:24:15 2005 for the OpenSceneGraph by doxygen 1.3.6.