osgGA::TrackballManipulator Class Reference

Inheritance diagram for osgGA::TrackballManipulator:

osgGA::MatrixManipulator osgGA::GUIEventHandler osg::NodeCallback osg::Drawable::EventCallback osg::Object osg::Object osg::Referenced osg::Referenced

List of all members.

Public Member Functions

 TrackballManipulator ()
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
osgUtil::SceneView::FusionDistanceMode 
getFusionDistanceMode () const
virtual float getFusionDistanceValue () const
virtual void setNode (osg::Node *)
virtual const osg::NodegetNode () const
virtual osg::NodegetNode ()
virtual void home (const GUIEventAdapter &ea, GUIActionAdapter &us)
virtual void home (double)
virtual void init (const GUIEventAdapter &ea, GUIActionAdapter &us)
virtual bool handle (const GUIEventAdapter &ea, GUIActionAdapter &us)
virtual void getUsage (osg::ApplicationUsage &usage) const
void setMinimumZoomScale (double minimumZoomScale)
double getMinimumZoomScale () const
void setScroolWheelZoomDelta (double zoomDelta)
double getScroolWheelZoomDelta () const
void setCenter (const osg::Vec3d &center)
const osg::Vec3dgetCenter () const
void setRotation (const osg::Quat &rotation)
const osg::QuatgetRotation () const
void setDistance (double distance)
double getDistance () const
void setTrackballSize (float size)
float getTrackballSize () const
void setAllowThrow (bool allowThrow)
bool getAllowThrow () const

Protected Member Functions

virtual ~TrackballManipulator ()
void flushMouseEventStack ()
void addMouseEvent (const GUIEventAdapter &ea)
void computePosition (const osg::Vec3 &eye, const osg::Vec3 &lv, const osg::Vec3 &up)
bool calcMovement ()
void trackball (osg::Vec3 &axis, float &angle, float p1x, float p1y, float p2x, float p2y)
float tb_project_to_sphere (float r, float x, float y)
bool isMouseMoving ()

Protected Attributes

osg::ref_ptr< const
GUIEventAdapter
_ga_t1
osg::ref_ptr< const
GUIEventAdapter
_ga_t0
osg::observer_ptr< osg::Node_node
double _modelScale
double _minimumZoomScale
bool _allowThrow
bool _thrown
double _delta_frame_time
double _last_frame_time
osg::Vec3d _center
osg::Quat _rotation
double _distance
float _trackballSize
float _zoomDelta


Constructor & Destructor Documentation

osgGA::TrackballManipulator::TrackballManipulator (  ) 

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


Member Function Documentation

virtual const char* osgGA::TrackballManipulator::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::TrackballManipulator::setByMatrix ( const osg::Matrixd matrix  )  [virtual]

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

Implements osgGA::MatrixManipulator.

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

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

Implements osgGA::MatrixManipulator.

References osg::Matrixd::inverse().

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

get the position of the manipulator as 4x4 Matrix.

Implements osgGA::MatrixManipulator.

virtual osg::Matrixd osgGA::TrackballManipulator::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 osgUtil::SceneView::FusionDistanceMode osgGA::TrackballManipulator::getFusionDistanceMode (  )  const [inline, virtual]

Get the FusionDistanceMode. Used by SceneView for setting up stereo convergence.

Reimplemented from osgGA::MatrixManipulator.

References osgUtil::SceneView::USE_FUSION_DISTANCE_VALUE.

virtual float osgGA::TrackballManipulator::getFusionDistanceValue (  )  const [inline, virtual]

Get the FusionDistanceValue. Used by SceneView for setting up stereo convergence.

Reimplemented from osgGA::MatrixManipulator.

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

Attach a node to the manipulator. Automatically detaches previously attached node. setNode(NULL) detaches previously nodes. Is ignored by manipulators which do not require a reference model.

Reimplemented from osgGA::MatrixManipulator.

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

Return node if attached.

Reimplemented from osgGA::MatrixManipulator.

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

Return node if attached.

Reimplemented from osgGA::MatrixManipulator.

virtual void osgGA::TrackballManipulator::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::TrackballManipulator::home ( double   )  [virtual]

Move the camera to the default position. This version does not require GUIEventAdapter and GUIActionAdapter so may be called from somewhere other than a handle() method in GUIEventHandler. Application must be aware of implications.

Reimplemented from osgGA::MatrixManipulator.

virtual void osgGA::TrackballManipulator::init ( const GUIEventAdapter ea,
GUIActionAdapter us 
) [virtual]

Start/restart the manipulator.

Reimplemented from osgGA::MatrixManipulator.

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

handle events, return true if handled, false otherwise.

Reimplemented from osgGA::MatrixManipulator.

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

Get the keyboard and mouse usage of this manipulator.

Reimplemented from osgGA::GUIEventHandler.

void osgGA::TrackballManipulator::setMinimumZoomScale ( double  minimumZoomScale  )  [inline]

set the minimum distance (as ratio) the eye point can be zoomed in towards the center before the center is pushed forward.

double osgGA::TrackballManipulator::getMinimumZoomScale (  )  const [inline]

get the minimum distance (as ratio) the eye point can be zoomed in

void osgGA::TrackballManipulator::setScroolWheelZoomDelta ( double  zoomDelta  )  [inline]

set the mouse scroll wheel zoom delta. Range -1.0 to +1.0, -ve value inverts wheel direction and zero switches off scroll wheel.

double osgGA::TrackballManipulator::getScroolWheelZoomDelta (  )  const [inline]

get the mouse scroll wheel zoom delta.

void osgGA::TrackballManipulator::setCenter ( const osg::Vec3d center  )  [inline]

Set the center of the trackball.

const osg::Vec3d& osgGA::TrackballManipulator::getCenter (  )  const [inline]

Get the center of the trackball.

void osgGA::TrackballManipulator::setRotation ( const osg::Quat rotation  )  [inline]

Set the rotation of the trackball.

const osg::Quat& osgGA::TrackballManipulator::getRotation (  )  const [inline]

Get the rotation of the trackball.

void osgGA::TrackballManipulator::setDistance ( double  distance  )  [inline]

Set the distance of the trackball.

Reimplemented from osgGA::MatrixManipulator.

double osgGA::TrackballManipulator::getDistance (  )  const [inline, virtual]

Get the distance of the trackball.

Reimplemented from osgGA::MatrixManipulator.

void osgGA::TrackballManipulator::setTrackballSize ( float  size  ) 

Set the size of the trackball.

float osgGA::TrackballManipulator::getTrackballSize (  )  const [inline]

Get the size of the trackball.

void osgGA::TrackballManipulator::setAllowThrow ( bool  allowThrow  )  [inline]

Set the 'allow throw' flag. Releasing the mouse button while moving the camera results in a throw.

bool osgGA::TrackballManipulator::getAllowThrow (  )  const [inline]

Returns true if the camera can be thrown, false otherwise. This defaults to true.

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

Reset the internal GUIEvent stack.

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

Add the current mouse GUIEvent to internal stack.

void osgGA::TrackballManipulator::computePosition ( const osg::Vec3 eye,
const osg::Vec3 lv,
const osg::Vec3 up 
) [protected]

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

For the give mouse movement calculate the movement of the camera. Return true is camera has moved and a redraw is required.

void osgGA::TrackballManipulator::trackball ( osg::Vec3 axis,
float &  angle,
float  p1x,
float  p1y,
float  p2x,
float  p2y 
) [protected]

float osgGA::TrackballManipulator::tb_project_to_sphere ( float  r,
float  x,
float  y 
) [protected]

bool osgGA::TrackballManipulator::isMouseMoving (  )  [protected]

Check the speed at which the mouse is moving. If speed is below a threshold then return false, otherwise return true.


Member Data Documentation

The approximate amount of time it is currently taking to draw a frame. This is used to compute the delta in translation/rotation during a thrown display update. It allows us to match an delta in position/rotation independent of the rendering frame rate.

The time the last frame started. Used when _rate_sensitive is true so that we can match display update rate to rotation/translation rate.


The documentation for this class was generated from the following file:

Generated on Sat Mar 20 12:34:02 2010 for openscenegraph by  doxygen 1.5.6