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

# osgGA::UFOManipulator Class Reference

A UFO manipulator driven with keybindings. More...

Inheritance diagram for osgGA::UFOManipulator:

[legend]
List of all members.

## Public Member Functions
| UFOManipulator ()
| Default constructor.
virtual const char * | className () const
| return className
virtual void | setByMatrix (const osg::Matrixd &matrix)
| Set the current position with a matrix.
virtual void | setByInverseMatrix (const osg::Matrixd &invmat)
| Set the current position with the invers matrix.
virtual osg::Matrixd | getMatrix () const
| Get the current viewmatrix.
virtual osg::Matrixd | getInverseMatrix () const
| Get the current inverse view matrix.
virtual void | setNode (osg::Node *node)
| Set the subgraph this manipulator is driving the eye through.
virtual const osg::Node * | getNode () const
| Get the root node of the subgraph this manipulator is driving the eye through (const).
virtual osg::Node * | getNode ()
| Get the root node of the subgraph this manipulator is driving the eye through.
virtual void | computeHomePosition ()
| Computes the home position based on the extents and scale of the scene graph rooted at node.
virtual void | home (const osgGA::GUIEventAdapter &, osgGA::GUIActionAdapter &)
| Sets the viewpoint matrix to the home position.
void | home (double)
| Move the camera to the default position.
virtual void | init (const GUIEventAdapter &,GUIActionAdapter &)
| Start/restart the manipulator.
bool | handle (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &aa)
| Handles incoming osgGA events.
void | getUsage (osg::ApplicationUsage &usage) const
| Reports Usage parameters to the application.
void | getCurrentPositionAsLookAt (osg::Vec3 &eye, osg::Vec3 &center, osg::Vec3 &up)
| Report the current position as LookAt vectors.
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
## Protected Member Functions
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 Attributes
osg::ref_ptr< osg::Node > | _node
float | _viewAngle
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::Vec3 | _direction
osg::Vec3 | _position
bool | _shift
bool | _ctrl
bool | _decelerateOffsetRate
bool | _straightenOffset

## 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.

Parameters:

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

## Constructor & Destructor Documentation

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

| Default constructor.

## Member Function Documentation

void osgGA::UFOManipulator::_adjustPosition | ( |  | ) | `[protected]`

void osgGA::UFOManipulator::_frame | ( | const osgGA::GUIEventAdapter & | ea,
|  | osgGA::GUIActionAdapter & |
| ) | `[protected]`

void osgGA::UFOManipulator::_keyDown | ( | const osgGA::GUIEventAdapter & | ea,
|  | osgGA::GUIActionAdapter & |
| ) | `[protected]`

void osgGA::UFOManipulator::_keyUp | ( | const osgGA::GUIEventAdapter & | ea,
|  | osgGA::GUIActionAdapter & |
| ) | `[protected]`

void osgGA::UFOManipulator::_stop | ( |  | ) | `[protected]`

virtual const char* osgGA::UFOManipulator::className | ( |  | ) | const`[virtual]`

| return className Returns: returns constant "UFO" Reimplemented from osgGA::MatrixManipulator.

virtual void osgGA::UFOManipulator::computeHomePosition | ( |  | ) | `[virtual]`

| Computes the home position based on the extents and scale of the scene graph rooted at node. Reimplemented from osgGA::MatrixManipulator.

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

| Report the current position as LookAt vectors.

double osgGA::UFOManipulator::getForwardSpeed | ( |  | ) | const`[inline]`

virtual osg::Matrixd osgGA::UFOManipulator::getInverseMatrix | ( |  | ) | const`[virtual]`

| Get the current inverse view matrix. Implements osgGA::MatrixManipulator.

virtual osg::Matrixd osgGA::UFOManipulator::getMatrix | ( |  | ) | const`[virtual]`

| Get the current viewmatrix. Implements osgGA::MatrixManipulator.

double osgGA::UFOManipulator::getMinDistance | ( |  | ) | const`[inline]`

double osgGA::UFOManipulator::getMinHeight | ( |  | ) | const`[inline]`

virtual osg::Node* osgGA::UFOManipulator::getNode | ( |  | ) | `[virtual]`

| Get the root node of the subgraph this manipulator is driving the eye through. Reimplemented from osgGA::MatrixManipulator.

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::MatrixManipulator.

double osgGA::UFOManipulator::getRotationSpeed | ( |  | ) | const`[inline]`

double osgGA::UFOManipulator::getSideSpeed | ( |  | ) | const`[inline]`

void osgGA::UFOManipulator::getUsage | ( | osg::ApplicationUsage & | usage | ) | const`[virtual]`

| Reports Usage parameters to the application. Reimplemented from osgGA::GUIEventHandler.

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

| Handles incoming osgGA events.

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::MatrixManipulator.

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

| Sets the viewpoint matrix to the home position.

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

| Start/restart the manipulator. FIXME: what does this actually mean? Provide examples. Reimplemented from osgGA::MatrixManipulator.

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

  | Set the current position with the invers matrix. Parameters:
  invmat | The inverse of a viewpoint matrix
Implements osgGA::MatrixManipulator.

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

  | Set the current position with a matrix. Parameters:
  matrix | A viewpoint matrix.
Implements osgGA::MatrixManipulator.

void osgGA::UFOManipulator::setForwardSpeed | ( | double | in_fs | ) | `[inline]`

void osgGA::UFOManipulator::setMinDistance | ( | double | in_min_dist | ) | `[inline]`

void osgGA::UFOManipulator::setMinHeight | ( | double | in_min_height | ) | `[inline]`

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::MatrixManipulator.

void osgGA::UFOManipulator::setRotationSpeed | ( | double | in_rot_speed | ) | `[inline]`

void osgGA::UFOManipulator::setSideSpeed | ( | double | in_ss | ) | `[inline]`

## Member Data Documentation

bool osgGA::UFOManipulator::_ctrl`[protected]`

bool osgGA::UFOManipulator::_decelerateOffsetRate`[protected]`

bool osgGA::UFOManipulator::_decelerateUpSideRate`[protected]`

osg::Vec3 osgGA::UFOManipulator::_direction`[protected]`

double osgGA::UFOManipulator::_directionRotationAcceleration`[protected]`

double osgGA::UFOManipulator::_directionRotationDeceleration`[protected]`

double osgGA::UFOManipulator::_directionRotationEpsilon`[protected]`

double osgGA::UFOManipulator::_directionRotationRate`[protected]`

double osgGA::UFOManipulator::_dt`[protected]`

double osgGA::UFOManipulator::_forwardSpeed`[protected]`

osg::Matrixd osgGA::UFOManipulator::_inverseMatrix`[protected]`

osg::Matrixd osgGA::UFOManipulator::_matrix`[protected]`

double osgGA::UFOManipulator::_minDistanceInFront`[protected]`

double osgGA::UFOManipulator::_minHeightAboveGround`[protected]`

osg::ref_ptr<osg::Node> osgGA::UFOManipulator::_node`[protected]`

osg::Matrixd osgGA::UFOManipulator::_offset`[protected]`

double osgGA::UFOManipulator::_pitchOffset`[protected]`

double osgGA::UFOManipulator::_pitchOffsetRate`[protected]`

osg::Vec3 osgGA::UFOManipulator::_position`[protected]`

bool osgGA::UFOManipulator::_shift`[protected]`

double osgGA::UFOManipulator::_sideSpeed`[protected]`

double osgGA::UFOManipulator::_speedAccelerationFactor`[protected]`

double osgGA::UFOManipulator::_speedDecelerationFactor`[protected]`

double osgGA::UFOManipulator::_speedEpsilon`[protected]`

bool osgGA::UFOManipulator::_straightenOffset`[protected]`

double osgGA::UFOManipulator::_t0`[protected]`

double osgGA::UFOManipulator::_upSpeed`[protected]`

float osgGA::UFOManipulator::_viewAngle`[protected]`

double osgGA::UFOManipulator::_viewOffsetDelta`[protected]`

double osgGA::UFOManipulator::_yawOffset`[protected]`

double osgGA::UFOManipulator::_yawOffsetRate`[protected]`

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

- UFOManipulator