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

osgGA::TrackballManipulator Class Reference

Inheritance diagram for osgGA::TrackballManipulator:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 TrackballManipulator ()
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 osgUtil::SceneView::FusionDistanceMode getFusionDistanceMode () const
 Get the FusionDistanceMode.

virtual float getFusionDistanceValue () const
 Get the FusionDistanceValue.

virtual void setNode (osg::Node *)
 Attach a node to the manipulator.

virtual const osg::NodegetNode () const
 Return node if attached.

virtual osg::NodegetNode ()
 Return node if attached.

virtual void home (const GUIEventAdapter &ea, GUIActionAdapter &us)
 Move the camera to the default position.

virtual void home (double)
 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 setMinimumZoomScale (double minimumZoomScale)
 set the minimum distance (as ratio) the eye point can be zoomed in towards the center before the center is pushed forward.

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

void setCenter (const osg::Vec3d &center)
 Set the center of the trackball.

const osg::Vec3dgetCenter () const
 Get the center of the trackball.

void setRotation (const osg::Quat &rotation)
 Set the rotation of the trackball.

const osg::QuatgetRotation () const
 Get the rotation of the trackball.

void setDistance (double distance)
 Set the distance of the trackball.

double getDistance () const
 Get the distance of the trackball.

void setTrackballSize (float size)
 Set the size of the trackball.

float getTrackballSize () const
 Get the size of the trackball.


Protected Member Functions

virtual ~TrackballManipulator ()
void flushMouseEventStack ()
 Reset the internal GUIEvent stack.

void addMouseEvent (const GUIEventAdapter &ea)
 Add the current mouse GUIEvent to internal stack.

void computePosition (const osg::Vec3 &eye, const osg::Vec3 &lv, const osg::Vec3 &up)
bool calcMovement ()
 For the give mouse movement calculate the movement of the camera.

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 ()
 Check the speed at which the mouse is moving.


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 _minimumZoomScale
bool _thrown
osg::Vec3d _center
osg::Quat _rotation
double _distance
float _trackballSize

Constructor & Destructor Documentation

osgGA::TrackballManipulator::TrackballManipulator  ) 
 

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


Member Function Documentation

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

Add the current mouse GUIEvent to internal stack.

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.

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.

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

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

Reset the internal GUIEvent stack.

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

Get the center of the trackball.

double osgGA::TrackballManipulator::getDistance  )  const [inline]
 

Get the distance of the trackball.

virtual osgUtil::SceneView::FusionDistanceMode osgGA::TrackballManipulator::getFusionDistanceMode  )  const [inline, virtual]
 

Get the FusionDistanceMode.

Used by SceneView for setting up setereo convergence.

Reimplemented from osgGA::MatrixManipulator.

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

Get the FusionDistanceValue.

Used by SceneView for setting up setereo convergence.

Reimplemented from 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 osg::Matrixd osgGA::TrackballManipulator::getMatrix  )  const [virtual]
 

get the position of the manipulator as 4x4 Matrix.

Implements osgGA::MatrixManipulator.

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

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

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

Return node if attached.

Reimplemented from osgGA::MatrixManipulator.

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

Return node if attached.

Reimplemented from osgGA::MatrixManipulator.

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

Get the rotation of the trackball.

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

Get the size of the trackball.

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

Get the keyboard and mouse usage of this manipulator.

Reimplemented from osgGA::GUIEventHandler.

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

Start/restart the manipulator.

Reimplemented from osgGA::MatrixManipulator.

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.

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.

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

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

Implements osgGA::MatrixManipulator.

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

Set the center of the trackball.

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

Set the distance of the trackball.

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.

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.

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

Set the rotation of the trackball.

void osgGA::TrackballManipulator::setTrackballSize float  size  ) 
 

Set the size of the trackball.

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

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


Member Data Documentation

osg::Vec3d osgGA::TrackballManipulator::_center [protected]
 

double osgGA::TrackballManipulator::_distance [protected]
 

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

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

double osgGA::TrackballManipulator::_minimumZoomScale [protected]
 

double osgGA::TrackballManipulator::_modelScale [protected]
 

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

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

bool osgGA::TrackballManipulator::_thrown [protected]
 

float osgGA::TrackballManipulator::_trackballSize [protected]
 


The documentation for this class was generated from the following file:
Generated at Thu Nov 24 16:24:20 2005 for the OpenSceneGraph by doxygen 1.3.6.