osgGA::UFOManipulator Class Reference

A UFO manipulator driven with keybindings. More...

`#include <UFOManipulator>`

Inheritance diagram for osgGA::UFOManipulator:

## Public Member Functions

| UFOManipulator ()
virtual const char * | className () const
virtual void | setByMatrix (const osg::Matrixd &matrix)
virtual void | setByInverseMatrix (const osg::Matrixd &invmat)
virtual osg::Matrixd | getMatrix () const
virtual osg::Matrixd | getInverseMatrix () const
virtual void | setNode (osg::Node *node)
virtual const osg::Node * | getNode () const
virtual osg::Node * | getNode ()
virtual void | computeHomePosition ()
virtual void | home (const osgGA::GUIEventAdapter &, osgGA::GUIActionAdapter &)
void | home (double)
virtual void | init (const GUIEventAdapter &, GUIActionAdapter &)
bool | handle (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &aa)
void | getUsage (osg::ApplicationUsage &usage) const
void | getCurrentPositionAsLookAt (osg::Vec3d &eye, osg::Vec3d &center, osg::Vec3d &up)
void | setMinHeight (double in_min_height)
double | getMinHeight () const
void | setMinDistance (double in_min_dist)
double | getMinDistance () const
void | setForwardSpeed (double in_fs)
double | getForwardSpeed () const
void | setSideSpeed (double in_ss)
double | getSideSpeed () const
void | setRotationSpeed (double in_rot_speed)
double | getRotationSpeed () const
Public Member Functions inherited from osgGA::CameraManipulator
virtual void | setCoordinateFrameCallback (CoordinateFrameCallback *cb)
CoordinateFrameCallback * | getCoordinateFrameCallback ()
const CoordinateFrameCallback * | getCoordinateFrameCallback () const
osg::CoordinateFrame | getCoordinateFrame (const osg::Vec3d &position) const
osg::Vec3d | getSideVector (const osg::CoordinateFrame &cf) const
osg::Vec3d | getFrontVector (const osg::CoordinateFrame &cf) const
osg::Vec3d | getUpVector (const osg::CoordinateFrame &cf) const
virtual void | updateCamera (osg::Camera &camera)
virtual osgUtil::SceneView::FusionDistanceMode | getFusionDistanceMode () const
virtual float | getFusionDistanceValue () const
void | setIntersectTraversalMask (unsigned int mask)
unsigned int | getIntersectTraversalMask () const
virtual void | setHomePosition (const osg::Vec3d &eye, const osg::Vec3d &center, const osg::Vec3d &up, bool autoComputeHomePosition=false)
virtual void | getHomePosition (osg::Vec3d &eye, osg::Vec3d &center, osg::Vec3d &up) const
virtual void | setAutoComputeHomePosition (bool flag)
bool | getAutoComputeHomePosition () const
virtual void | computeHomePosition (const osg::Camera *camera=NULL, bool useBoundingBox=false)
virtual void | finishAnimation ()
virtual bool | handle (osgGA::Event *event, osg::Object *object, osg::NodeVisitor *nv)
Public Member Functions inherited from osgGA::GUIEventHandler
| GUIEventHandler ()
| GUIEventHandler (const GUIEventHandler &eh, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
| META_Object (osgGA, GUIEventHandler)
virtual bool | handle (const GUIEventAdapter &ea, GUIActionAdapter &aa, osg::Object *, osg::NodeVisitor *)
Public Member Functions inherited from osgGA::EventHandler
| EventHandler ()
| EventHandler (const EventHandler &eh, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
| META_Object (osgGA, EventHandler)
virtual NodeCallback * | asNodeCallback ()
virtual const NodeCallback * | asNodeCallback () const
virtual DrawableEventCallback * | asDrawableEventCallback ()
virtual const DrawableEventCallback * | asDrawableEventCallback () const
virtual EventHandler * | asEventHandler ()
virtual const EventHandler * | asEventHandler () const
virtual bool | run (osg::Object *object, osg::Object *data)
virtual void | operator() (osg::Node *node, osg::NodeVisitor *nv)
virtual void | event (osg::NodeVisitor *nv, osg::Drawable *drawable)
Public Member Functions inherited from osg::NodeCallback
| NodeCallback ()
| NodeCallback (const NodeCallback &nc, const CopyOp &copyop)
| META_Object (osg, NodeCallback)
Public Member Functions inherited from osg::Callback
| Callback ()
| Callback (const Callback &cb, const CopyOp &copyop)
| META_Object (osg, Callback)
virtual Callback * | asCallback ()
virtual const Callback * | asCallback () const
virtual CallbackObject * | asCallbackObject ()
virtual const CallbackObject * | asCallbackObject () const
virtual StateAttributeCallback * | asStateAttributeCallback ()
virtual const StateAttributeCallback * | asStateAttributeCallback () const
virtual UniformCallback * | asUniformCallback ()
virtual const UniformCallback * | asUniformCallback () const
virtual DrawableUpdateCallback * | asDrawableUpdateCallback ()
virtual const DrawableUpdateCallback * | asDrawableUpdateCallback () const
virtual DrawableCullCallback * | asDrawableCullCallback ()
virtual const DrawableCullCallback * | asDrawableCullCallback () const
bool | traverse (osg::Object *object, osg::Object *data)
void | setNestedCallback (osg::Callback *cb)
osg::Callback * | getNestedCallback ()
const osg::Callback * | getNestedCallback () const
void | addNestedCallback (osg::Callback *nc)
void | removeNestedCallback (osg::Callback *nc)
Public Member Functions inherited from osg::Object
| Object ()
| Object (bool threadSafeRefUnref)
| Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual Object * | cloneType () const =0
virtual Object * | clone (const CopyOp &) const =0
virtual bool | isSameKindAs (const Object *) const
virtual const char * | libraryName () const =0
std::string | getCompoundClassName () const
virtual Node * | asNode ()
virtual const Node * | asNode () const
virtual NodeVisitor * | asNodeVisitor ()
virtual const NodeVisitor * | asNodeVisitor () const
virtual StateSet * | asStateSet ()
virtual const StateSet * | asStateSet () const
virtual StateAttribute * | asStateAttribute ()
virtual const StateAttribute * | asStateAttribute () const
virtual Uniform * | asUniform ()
virtual const Uniform * | asUniform () const
virtual Camera * | asCamera ()
virtual const Camera * | asCamera () const
virtual Drawable * | asDrawable ()
virtual const Drawable * | asDrawable () const
virtual UserDataContainer * | asUserDataContainer ()
virtual const UserDataContainer * | asUserDataContainer () const
virtual ValueObject * | asValueObject ()
virtual const ValueObject * | asValueObject () const
virtual Image * | asImage ()
virtual const Image * | asImage () const
virtual void | setThreadSafeRefUnref (bool threadSafe)
virtual void | setName (const std::string &name)
void | setName (const char *name)
const std::string & | getName () const
void | setDataVariance (DataVariance dv)
DataVariance | getDataVariance () const
virtual void | computeDataVariance ()
void | setUserDataContainer (osg::UserDataContainer *udc)
template<class T>
void | setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainer * | getUserDataContainer ()
const osg::UserDataContainer * | getUserDataContainer () const
osg::UserDataContainer * | getOrCreateUserDataContainer ()
virtual void | setUserData (Referenced *obj)
template<class T>
void | setUserData (const ref_ptr< T > &ud)
virtual Referenced * | getUserData ()
virtual const Referenced * | getUserData () const
template<typename T>
bool | getUserValue (const std::string &name, T &value) const
template<typename T>
void | setUserValue (const std::string &name, const T &value)
virtual void | resizeGLObjectBuffers (unsigned int)
virtual void | releaseGLObjects (osg::State *=0) const
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const
Public Member Functions inherited from osg::Referenced
| Referenced ()
| Referenced (bool threadSafeRefUnref)
| Referenced (const Referenced &)
Referenced & | operator= (const Referenced &)
bool | getThreadSafeRefUnref () const
OpenThreads::Mutex * | getRefMutex () const
int | ref () const
int | unref () const
int | unref_nodelete () const
int | referenceCount () const
ObserverSet * | getObserverSet () const
ObserverSet * | getOrCreateObserverSet () const
void | addObserver (Observer *observer) const
void | removeObserver (Observer *observer) const
Public Member Functions inherited from osg::DrawableEventCallback
| DrawableEventCallback ()
| DrawableEventCallback (const DrawableEventCallback &org, const CopyOp &copyop)
| META_Object (osg, DrawableEventCallback)

## Protected Member Functions

virtual | ~UFOManipulator ()
bool | intersect (const osg::Vec3d &start, const osg::Vec3d &end, osg::Vec3d &intersection) const
void | _stop ()
void | _keyDown (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &)
void | _keyUp (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &)
void | _frame (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &)
void | _adjustPosition ()
Protected Member Functions inherited from osgGA::CameraManipulator
| CameraManipulator ()
| CameraManipulator (const CameraManipulator &mm, const osg::CopyOp &copyOp=osg::CopyOp::SHALLOW_COPY)
virtual | ~CameraManipulator ()
std::string | getManipulatorName () const
Protected Member Functions inherited from osgGA::GUIEventHandler
virtual | ~GUIEventHandler ()
Protected Member Functions inherited from osg::NodeCallback
virtual | ~NodeCallback ()
Protected Member Functions inherited from osg::Callback
virtual | ~Callback ()
Protected Member Functions inherited from osg::Object
virtual | ~Object ()
Protected Member Functions inherited from osg::Referenced
virtual | ~Referenced ()
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const
void | deleteUsingDeleteHandler () const

## Protected Attributes

osg::observer_ptr< osg::Node > | _node
osg::Matrixd | _matrix
osg::Matrixd | _inverseMatrix
osg::Matrixd | _offset
double | _minHeightAboveGround
double | _minDistanceInFront
double | _speedEpsilon
double | _forwardSpeed
double | _sideSpeed
double | _upSpeed
double | _speedAccelerationFactor
double | _speedDecelerationFactor
bool | _decelerateUpSideRate
double | _directionRotationEpsilon
double | _directionRotationRate
double | _directionRotationAcceleration
double | _directionRotationDeceleration
double | _viewOffsetDelta
double | _pitchOffsetRate
double | _pitchOffset
double | _yawOffsetRate
double | _yawOffset
double | _t0
double | _dt
osg::Vec3d | _direction
osg::Vec3d | _position
bool | _shift
bool | _ctrl
bool | _decelerateOffsetRate
bool | _straightenOffset
Protected Attributes inherited from osgGA::CameraManipulator
unsigned int | _intersectTraversalMask
bool | _autoComputeHomePosition
osg::Vec3d | _homeEye
osg::Vec3d | _homeCenter
osg::Vec3d | _homeUp
osg::ref_ptr< CoordinateFrameCallback > | _coordinateFrameCallback
Protected Attributes inherited from osg::Callback
ref_ptr< Callback > | _nestedCallback
Protected Attributes inherited from osg::Object
std::string | _name
DataVariance | _dataVariance
osg::UserDataContainer * | _userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr | _observerSet
OpenThreads::Atomic | _refCount

## Additional Inherited Members

Public Types inherited from osg::Object
enum | DataVariance { DYNAMIC , STATIC , UNSPECIFIED }
Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * | getGlobalReferencedMutex ()
static void | setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * | getDeleteHandler ()

## Detailed Description

A UFO manipulator driven with keybindings.

The UFOManipulator is better suited for applications that employ architectural walk-throughs, or situations where the eyepoint motion model must move slowly, deliberately and well controlled.

The UFO Manipulator allows the following movements with the listed Key combinations:

Parameters

  UpArrow | Acceleration forward.
  DownArrow | Acceleration backward (or deceleration forward).
  LeftArrow | Rotate view and direction of travel to the left.
  RightArrow | Rotate view and direction of travel to the right.
  SpaceBar | Brake. Gradually decelerates linear and rotational movement.
  Shift/UpArrow | Accelerate up.
  Shift/DownArrow | Accelerate down.
  Shift/LeftArrow | Accelerate (linearly) left.
  Shift/RightArrow | Accelerate (linearly) right.
  Shift/SpaceBar | Instant brake. Immediately stop all linear and rotational movement.

When the Shift key is released, up, down, linear left and/or linear right movement is decelerated.

    \param Ctrl/UpArrow     Rotate view (but not direction of travel) up.
    \param Ctrl/DownArrow   Rotate view (but not direction of travel) down.
    \param Ctrl/LeftArrow   Rotate view (but not direction of travel) left.
    \param Ctrl/RightArrow  Rotate view (but not direction of travel) right.
    \param Ctrl/Return      Straightens out the view offset.

## Constructor & Destructor Documentation

## UFOManipulator()

osgGA::UFOManipulator::UFOManipulator | ( |  | ) |

Default constructor

## ~UFOManipulator()

virtual osgGA::UFOManipulator::~UFOManipulator | ( |  | ) |

protected virtual

## Member Function Documentation

## _adjustPosition()

void osgGA::UFOManipulator::_adjustPosition | ( |  | ) |

protected

## _frame()

void osgGA::UFOManipulator::_frame | ( | const osgGA::GUIEventAdapter & | ea,
|  | osgGA::GUIActionAdapter & | )

protected

## _keyDown()

void osgGA::UFOManipulator::_keyDown | ( | const osgGA::GUIEventAdapter & | ea,
|  | osgGA::GUIActionAdapter & | )

protected

## _keyUp()

void osgGA::UFOManipulator::_keyUp | ( | const osgGA::GUIEventAdapter & | ea,
|  | osgGA::GUIActionAdapter & | )

protected

## _stop()

void osgGA::UFOManipulator::_stop | ( |  | ) |

protected

## className()

virtual const char * osgGA::UFOManipulator::className | ( |  | ) | const

virtual

return className

Returns
  returns constant "UFO"

Reimplemented from osgGA::CameraManipulator.

## computeHomePosition()

virtual void osgGA::UFOManipulator::computeHomePosition | ( |  | ) |

virtual

Computes the home position based on the extents and scale of the scene graph rooted at node

## getCurrentPositionAsLookAt()

void osgGA::UFOManipulator::getCurrentPositionAsLookAt | ( | osg::Vec3d & | eye,
|  | osg::Vec3d & | center,
|  | osg::Vec3d & | up )

Report the current position as LookAt vectors

## getForwardSpeed()

double osgGA::UFOManipulator::getForwardSpeed | ( |  | ) | const

inline

References _forwardSpeed.

## getInverseMatrix()

virtual osg::Matrixd osgGA::UFOManipulator::getInverseMatrix | ( |  | ) | const

virtual

Get the current inverse view matrix

Implements osgGA::CameraManipulator.

## getMatrix()

virtual osg::Matrixd osgGA::UFOManipulator::getMatrix | ( |  | ) | const

virtual

Get the current viewmatrix

Implements osgGA::CameraManipulator.

## getMinDistance()

double osgGA::UFOManipulator::getMinDistance | ( |  | ) | const

inline

References _minDistanceInFront.

## getMinHeight()

double osgGA::UFOManipulator::getMinHeight | ( |  | ) | const

inline

References _minHeightAboveGround.

## getNode() [1/2]

virtual osg::Node * osgGA::UFOManipulator::getNode | ( |  | ) |

virtual

Get the root node of the subgraph this manipulator is driving the eye through

Reimplemented from osgGA::CameraManipulator.

## getNode() [2/2]

virtual const osg::Node * osgGA::UFOManipulator::getNode | ( |  | ) | const

virtual

Get the root node of the subgraph this manipulator is driving the eye through (const)

Reimplemented from osgGA::CameraManipulator.

## getRotationSpeed()

double osgGA::UFOManipulator::getRotationSpeed | ( |  | ) | const

inline

References _directionRotationRate.

## getSideSpeed()

double osgGA::UFOManipulator::getSideSpeed | ( |  | ) | const

inline

References _sideSpeed.

## getUsage()

void osgGA::UFOManipulator::getUsage | ( | osg::ApplicationUsage & | usage | ) | const

virtual

Reports Usage parameters to the application

Reimplemented from osgGA::EventHandler.

## handle()

bool osgGA::UFOManipulator::handle | ( | const osgGA::GUIEventAdapter & | ea,
|  | osgGA::GUIActionAdapter & | aa )

virtual

Handles incoming osgGA events

Reimplemented from osgGA::CameraManipulator.

## home() [1/2]

virtual void osgGA::UFOManipulator::home | ( | const osgGA::GUIEventAdapter & | ,
|  | osgGA::GUIActionAdapter & | )

virtual

Sets the viewpoint matrix to the home position

Reimplemented from osgGA::CameraManipulator.

## home() [2/2]

void osgGA::UFOManipulator::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::CameraManipulator.

## init()

virtual void osgGA::UFOManipulator::init | ( | const GUIEventAdapter & | ,
|  | GUIActionAdapter & | )

virtual

Start/restart the manipulator.

Reimplemented from osgGA::CameraManipulator.

## intersect()

bool osgGA::UFOManipulator::intersect | ( | const osg::Vec3d & | start,
|  | const osg::Vec3d & | end,
|  | osg::Vec3d & | intersection ) const

protected

## setByInverseMatrix()

virtual void osgGA::UFOManipulator::setByInverseMatrix | ( | const osg::Matrixd & | invmat | ) |

virtual

Set the current position with the inverse matrix

Parameters

  invmat | The inverse of a viewpoint matrix

Implements osgGA::CameraManipulator.

## setByMatrix()

virtual void osgGA::UFOManipulator::setByMatrix | ( | const osg::Matrixd & | matrix | ) |

virtual

Set the current position with a matrix

Parameters

  matrix | A viewpoint matrix.

Implements osgGA::CameraManipulator.

## setForwardSpeed()

void osgGA::UFOManipulator::setForwardSpeed | ( | double | in_fs | ) |

inline

References _forwardSpeed.

## setMinDistance()

void osgGA::UFOManipulator::setMinDistance | ( | double | in_min_dist | ) |

inline

References _minDistanceInFront.

## setMinHeight()

void osgGA::UFOManipulator::setMinHeight | ( | double | in_min_height | ) |

inline

References _minHeightAboveGround.

## setNode()

virtual void osgGA::UFOManipulator::setNode | ( | osg::Node * | node | ) |

virtual

Set the subgraph this manipulator is driving the eye through.

Parameters

  node | root of subgraph

Reimplemented from osgGA::CameraManipulator.

## setRotationSpeed()

void osgGA::UFOManipulator::setRotationSpeed | ( | double | in_rot_speed | ) |

inline

References _directionRotationRate.

## setSideSpeed()

void osgGA::UFOManipulator::setSideSpeed | ( | double | in_ss | ) |

inline

References _sideSpeed.

## Member Data Documentation

## _ctrl

bool osgGA::UFOManipulator::_ctrl

protected

## _decelerateOffsetRate

bool osgGA::UFOManipulator::_decelerateOffsetRate

protected

## _decelerateUpSideRate

bool osgGA::UFOManipulator::_decelerateUpSideRate

protected

## _direction

osg::Vec3d osgGA::UFOManipulator::_direction

protected

## _directionRotationAcceleration

double osgGA::UFOManipulator::_directionRotationAcceleration

protected

## _directionRotationDeceleration

double osgGA::UFOManipulator::_directionRotationDeceleration

protected

## _directionRotationEpsilon

double osgGA::UFOManipulator::_directionRotationEpsilon

protected

## _directionRotationRate

double osgGA::UFOManipulator::_directionRotationRate

protected

Referenced by getRotationSpeed(), and setRotationSpeed().

## _dt

double osgGA::UFOManipulator::_dt

protected

## _forwardSpeed

double osgGA::UFOManipulator::_forwardSpeed

protected

Referenced by getForwardSpeed(), and setForwardSpeed().

## _inverseMatrix

osg::Matrixd osgGA::UFOManipulator::_inverseMatrix

protected

## _matrix

osg::Matrixd osgGA::UFOManipulator::_matrix

protected

## _minDistanceInFront

double osgGA::UFOManipulator::_minDistanceInFront

protected

Referenced by getMinDistance(), and setMinDistance().

## _minHeightAboveGround

double osgGA::UFOManipulator::_minHeightAboveGround

protected

Referenced by getMinHeight(), and setMinHeight().

## _node

osg::observer_ptr<osg::Node> osgGA::UFOManipulator::_node

protected

## _offset

osg::Matrixd osgGA::UFOManipulator::_offset

protected

## _pitchOffset

double osgGA::UFOManipulator::_pitchOffset

protected

## _pitchOffsetRate

double osgGA::UFOManipulator::_pitchOffsetRate

protected

## _position

osg::Vec3d osgGA::UFOManipulator::_position

protected

## _shift

bool osgGA::UFOManipulator::_shift

protected

## _sideSpeed

double osgGA::UFOManipulator::_sideSpeed

protected

Referenced by getSideSpeed(), and setSideSpeed().

## _speedAccelerationFactor

double osgGA::UFOManipulator::_speedAccelerationFactor

protected

## _speedDecelerationFactor

double osgGA::UFOManipulator::_speedDecelerationFactor

protected

## _speedEpsilon

double osgGA::UFOManipulator::_speedEpsilon

protected

## _straightenOffset

bool osgGA::UFOManipulator::_straightenOffset

protected

## _t0

double osgGA::UFOManipulator::_t0

protected

## _upSpeed

double osgGA::UFOManipulator::_upSpeed

protected

## _viewOffsetDelta

double osgGA::UFOManipulator::_viewOffsetDelta

protected

## _yawOffset

double osgGA::UFOManipulator::_yawOffset

protected

## _yawOffsetRate

double osgGA::UFOManipulator::_yawOffsetRate

protected

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

- UFOManipulator