class OSGGA_EXPORT osgGA::HoverManipulator

HoverManipulator is a MatrixManipulator which provides a camera motion model using mouse and keyboard, designed for flythrough applications (eg.

Inheritance:


Public Methods

[more] HoverManipulator()
[more]virtual const char* className() const
[more]virtual void setByMatrix(const osg::Matrixd& matrix)
set the position of the matrix manipulator using a 4x4 Matrix
[more]virtual void setByInverseMatrix(const osg::Matrixd& matrix)
set the position of the matrix manipulator using a 4x4 Matrix
[more]virtual osg::Matrixd getMatrix() const
get the position of the manipulator as 4x4 Matrix
[more]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
[more]virtual void setNode(osg::Node*)
[more]virtual const osg::Node* getNode() const
[more]virtual osg::Node* getNode()
[more]virtual void home(const GUIEventAdapter& ea, GUIActionAdapter& us)
[more]virtual void init(const GUIEventAdapter& ea, GUIActionAdapter& us)
[more]virtual bool handle(const GUIEventAdapter& ea, GUIActionAdapter& us)
[more]virtual void getUsage(osg::ApplicationUsage& usage) const
Get the keyboard and mouse usage of this manipulator
[more]virtual void stopAllMotion()

Protected Fields

[more]osg::ref_ptr<const GUIEventAdapter> _ga_t1
[more]osg::ref_ptr<const GUIEventAdapter> _ga_t0
[more]osg::ref_ptr<osg::Node> _node
[more]float _modelScale
[more]float _velocity
[more]float _heading
[more]float _pitch
[more]float _headingSpeed
[more]float _pitchSpeed
[more]bool _moveRight
[more]bool _moveLeft
[more]bool _moveForward
[more]bool _moveBackward
[more]float _leftRightSpeed
[more]float _forwBackwSpeed
[more]float _leftRightDefaultAcc
[more]float _forwBackwDefaultAcc
[more]float _leftRightDefaultBrake
[more]float _forwBackwDefaultBrake
[more]float _mouseFlyDefaultBrake
[more]osg::Vec3 _eye
[more]osg::Quat _rotation
[more]osg::Quat _refRotation
[more]float _distance

Protected Methods

[more]virtual ~HoverManipulator()
[more]void flushMouseEventStack()
Reset the internal GUIEvent stack
[more]void addMouseEvent(const GUIEventAdapter& ea)
Add the current mouse GUIEvent to internal stack
[more]void computePosition(const osg::Vec3& eye, const osg::Vec3& lv, const osg::Vec3& up)
[more]virtual bool calcMovement()
For the given mouse movement, calculate the movement of the camera.
[more]virtual void calcSpeedFromArrowKeys(double dt)
[more]virtual void calcSpeedFromMouseMotion(double dt)
[more]bool updatePositionRotation(float dt)
called each frame by calcMoveMent, updates eye position and rotation based on heading, pitch & velocity


Inherited from MatrixManipulator:

Public Classes

class CoordinateFrameCallback: public osg::Referenced
callback class to use to allow matrix manipulators to querry the application for the local coordinate frame

Public Methods

ovirtual void setMinimumDistance(float minimumDistance)
ofloat getMinimumDistance() const
ovirtual void setCoordinateFrameCallback(CoordinateFrameCallback* cb)
oCoordinateFrameCallback* getCoordinateFrameCallback()
oconst CoordinateFrameCallback* getCoordinateFrameCallback() const
oosg::CoordinateFrame getCoordinateFrame(const osg::Vec3d& position) const
oosg::Vec3d getSideVector(const osg::CoordinateFrame& cf) const
oosg::Vec3d getFrontVector(const osg::CoordinateFrame& cf) const
oosg::Vec3d getUpVector(const osg::CoordinateFrame& cf) const
ovirtual osgUtil::SceneView::FusionDistanceMode getFusionDistanceMode() const
ovirtual float getFusionDistanceValue() const
ovirtual void setHomePosition(const osg::Vec3d& eye, const osg::Vec3d& center, const osg::Vec3d& up)
ovirtual void getHomePosition(osg::Vec3d& eye, osg::Vec3d& center, osg::Vec3d& up)
ovirtual void setAutoComputeHomePosition(bool flag)
obool getAutoComputeHomePosition() const
ovirtual void computeHomePosition()
ovirtual void accept(GUIEventHandlerVisitor& v)

Protected Fields

odouble _minimumDistance
obool _autoComputeHomePosition
oosg::Vec3d _homeEye
oosg::Vec3d _homeCenter
oosg::Vec3d _homeUp
oosg::ref_ptr<CoordinateFrameCallback> _coordinateFrameCallback


Inherited from GUIEventHandler:

Public Methods

oMETA_Object (osgGA, GUIEventHandler) const () const
ovirtual CompositeGUIEventHandler* getComposite()


Documentation

HoverManipulator is a MatrixManipulator which provides a camera motion model using mouse and keyboard, designed for flythrough applications (eg. architectural visualisation). This class was based on FlightManipulator and inspired by the OpenGL Performer (TM) 'fly' navigation mode.

Mouse input: Dragging the middle mouse button changes the orientation of the camera. While holding down the middle mouse button, you increase/decrease flying speed using the left and right mouse buttons. Pressing the left and right buttons simultaneously works as a brake.

Keyboard input: Space - stops all motion immediately Arrow keys - move the camera parallel to the ground plane. Holding two 'opposing' arrow keys works as a brake. 'r' or 'R' - return the camera to the 'home' position ------ Martijn Kragtwijk, May 2004

o HoverManipulator()

ovirtual const char* className() const

ovirtual void setByMatrix(const osg::Matrixd& matrix)
set the position of the matrix manipulator using a 4x4 Matrix

ovirtual void setByInverseMatrix(const osg::Matrixd& matrix)
set the position of the matrix manipulator using a 4x4 Matrix

ovirtual osg::Matrixd getMatrix() const
get the position of the manipulator as 4x4 Matrix

ovirtual osg::Matrixd getInverseMatrix() const
get the position of the manipulator as a inverse matrix of the manipulator, typically used as a model view matrix

ovirtual void setNode(osg::Node*)

ovirtual const osg::Node* getNode() const

ovirtual osg::Node* getNode()

ovirtual void home(const GUIEventAdapter& ea, GUIActionAdapter& us)

ovirtual void init(const GUIEventAdapter& ea, GUIActionAdapter& us)

ovirtual bool handle(const GUIEventAdapter& ea, GUIActionAdapter& us)

ovirtual void getUsage(osg::ApplicationUsage& usage) const
Get the keyboard and mouse usage of this manipulator

ovirtual void stopAllMotion()

ovirtual ~HoverManipulator()

ovoid flushMouseEventStack()
Reset the internal GUIEvent stack

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

ovoid computePosition(const osg::Vec3& eye, const osg::Vec3& lv, const osg::Vec3& up)

ovirtual bool calcMovement()
For the given mouse movement, calculate the movement of the camera. Return true is camera has moved and a redraw is required.

ovirtual void calcSpeedFromArrowKeys(double dt)

ovirtual void calcSpeedFromMouseMotion(double dt)

obool updatePositionRotation(float dt)
called each frame by calcMoveMent, updates eye position and rotation based on heading, pitch & velocity

oosg::ref_ptr<const GUIEventAdapter> _ga_t1

oosg::ref_ptr<const GUIEventAdapter> _ga_t0

oosg::ref_ptr<osg::Node> _node

ofloat _modelScale

ofloat _velocity

ofloat _heading

ofloat _pitch

ofloat _headingSpeed

ofloat _pitchSpeed

obool _moveRight

obool _moveLeft

obool _moveForward

obool _moveBackward

ofloat _leftRightSpeed

ofloat _forwBackwSpeed

ofloat _leftRightDefaultAcc

ofloat _forwBackwDefaultAcc

ofloat _leftRightDefaultBrake

ofloat _forwBackwDefaultBrake

ofloat _mouseFlyDefaultBrake

oosg::Vec3 _eye

oosg::Quat _rotation

oosg::Quat _refRotation

ofloat _distance


This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.