# osgGA::MatrixManipulator Class Reference

MatrixManipulator is an abstract base class defining the interface, and a certain amount of default functionality, for classes which wish to control OSG cameras in response to GUI events. More...

Inheritance diagram for osgGA::MatrixManipulator:

[legend]
List of all members.

## Public Member Functions

virtual const char * | className () const
| return the name of the object's class type.
virtual void | setMinimumDistance (float minimumDistance)
| set the minimum distance (as ratio) the eye point can be zoomed in towards the center before the center is pushed forward.
float | getMinimumDistance () const
| get the minimum distance (as ratio) the eye point can be zoomed in
virtual void | setCoordinateFrameCallback (CoordinateFrameCallback *cb)
| set the coordinate frame which callback tells the manipulator which way is up, east and north.
CoordinateFrameCallback * | getCoordinateFrameCallback ()
| get the coordinate frame callback which tells the manipulator which way is up, east and north.
const CoordinateFrameCallback * | getCoordinateFrameCallback () const
| get the coordinate frame callback which tells the manipulator which way is up, east and north.
osg::CoordinateFrame | getCoordinateFrame (const osg::Vec3d &position) const
| get the coordinate frame.
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 | setByMatrix (const osg::Matrixd &matrix)=0
| set the position of the matrix manipulator using a 4x4 Matrix.
virtual void | setByInverseMatrix (const osg::Matrixd &matrix)=0
| set the position of the matrix manipulator using a 4x4 Matrix.
virtual osg::Matrixd | getMatrix () const =0
| get the position of the manipulator as 4x4 Matrix.
virtual osg::Matrixd | getInverseMatrix () const =0
| 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, automatically detaching any previously attached node.
virtual const osg::Node * | getNode () const
| Return const node if attached.
virtual osg::Node * | getNode ()
| Return node if attached.
virtual void | setHomePosition (const osg::Vec3d &eye, const osg::Vec3d &center, const osg::Vec3d &up, bool autoComputeHomePosition=false)
| Manually set the home position, and set the automatic compute of home position.
virtual void | getHomePosition (osg::Vec3d &eye, osg::Vec3d &center, osg::Vec3d &up) const
| Get the mnaully set home position.
virtual void | setAutoComputeHomePosition (bool flag)
| Set whether the automatic compute of the home position is enabled.
bool | getAutoComputeHomePosition () const
| Get whether the automatic compute of the home position is enabled.
virtual void | computeHomePosition ()
| Compute the home position.
virtual void | home (const GUIEventAdapter &, GUIActionAdapter &)
| Move the camera to the default position.
virtual void | init (const GUIEventAdapter &, GUIActionAdapter &)
| Start/restart the manipulator.
virtual bool | handle (const GUIEventAdapter &ea, GUIActionAdapter &us)
| Handle events, return true if handled, false otherwise.
virtual void | accept (GUIEventHandlerVisitor &v)
| Handle visitations.

## Protected Member Functions

| MatrixManipulator ()
virtual | ~MatrixManipulator ()

## Protected Attributes

double | _minimumDistance
bool | _autoComputeHomePosition
osg::Vec3d | _homeEye
osg::Vec3d | _homeCenter
osg::Vec3d | _homeUp
osg::ref_ptr< CoordinateFrameCallback > | _coordinateFrameCallback

## Classes

class | CoordinateFrameCallback
| callback class to use to allow matrix manipulators to querry the application for the local coordinate frame. More...

## Detailed Description

MatrixManipulator is an abstract base class defining the interface, and a certain amount of default functionality, for classes which wish to control OSG cameras in response to GUI events.

## Constructor & Destructor Documentation

MatrixManipulator::MatrixManipulator | ( |  | ) | `[protected]`

MatrixManipulator::~MatrixManipulator | ( |  | ) | `[protected, virtual]`

## Member Function Documentation

virtual void osgGA::MatrixManipulator::accept | ( | GUIEventHandlerVisitor & | v | ) | `[inline, virtual]`

| Handle visitations. Reimplemented from osgGA::GUIEventHandler.

virtual const char* osgGA::MatrixManipulator::className | ( |  | ) | const`[inline, virtual]`

| return the name of the object's class type. Must be defined by derived classes. Implements osg::Object. Reimplemented in osgGA::AnimationPathManipulator, osgGA::DriveManipulator, osgGA::FlightManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

virtual void osgGA::MatrixManipulator::computeHomePosition | ( |  | ) | `[inline, virtual]`

| Compute the home position. Reimplemented in osgGA::DriveManipulator, osgGA::KeySwitchMatrixManipulator, and osgGA::NodeTrackerManipulator.

bool osgGA::MatrixManipulator::getAutoComputeHomePosition | ( |  | ) | const`[inline]`

| Get whether the automatic compute of the home position is enabled.

osg::CoordinateFrame osgGA::MatrixManipulator::getCoordinateFrame | ( | const osg::Vec3d & | position | ) | const`[inline]`

| get the coordinate frame.

const CoordinateFrameCallback* osgGA::MatrixManipulator::getCoordinateFrameCallback | ( |  | ) | const`[inline]`

| get the coordinate frame callback which tells the manipulator which way is up, east and north.

CoordinateFrameCallback* osgGA::MatrixManipulator::getCoordinateFrameCallback | ( |  | ) | `[inline]`

| get the coordinate frame callback which tells the manipulator which way is up, east and north.

osg::Vec3d osgGA::MatrixManipulator::getFrontVector | ( | const osg::CoordinateFrame & | cf | ) | const`[inline]`

virtual osgUtil::SceneView::FusionDistanceMode osgGA::MatrixManipulator::getFusionDistanceMode | ( |  | ) | const`[inline, virtual]`

| Get the FusionDistanceMode. Used by SceneView for setting up setereo convergence. Reimplemented in osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

virtual float osgGA::MatrixManipulator::getFusionDistanceValue | ( |  | ) | const`[inline, virtual]`

| Get the FusionDistanceValue. Used by SceneView for setting up setereo convergence. Reimplemented in osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

virtual void osgGA::MatrixManipulator::getHomePosition | ( | osg::Vec3d & | eye,
|  | osg::Vec3d & | center,
|  | osg::Vec3d & | up
| ) | const`[inline, virtual]`

| Get the mnaully set home position.

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

| get the position of the manipulator as a inverse matrix of the manipulator, typically used as a model view matrix. Implemented in osgGA::AnimationPathManipulator, osgGA::DriveManipulator, osgGA::FlightManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

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

| get the position of the manipulator as 4x4 Matrix. Implemented in osgGA::AnimationPathManipulator, osgGA::DriveManipulator, osgGA::FlightManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

float osgGA::MatrixManipulator::getMinimumDistance | ( |  | ) | const`[inline]`

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

virtual osg::Node* osgGA::MatrixManipulator::getNode | ( |  | ) | `[inline, virtual]`

| Return node if attached. Reimplemented in osgGA::DriveManipulator, osgGA::FlightManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

virtual const osg::Node* osgGA::MatrixManipulator::getNode | ( |  | ) | const`[inline, virtual]`

| Return const node if attached. Reimplemented in osgGA::DriveManipulator, osgGA::FlightManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

osg::Vec3d osgGA::MatrixManipulator::getSideVector | ( | const osg::CoordinateFrame & | cf | ) | const`[inline]`

osg::Vec3d osgGA::MatrixManipulator::getUpVector | ( | const osg::CoordinateFrame & | cf | ) | const`[inline]`

bool MatrixManipulator::handle | ( | const GUIEventAdapter & | ea,
|  | GUIActionAdapter & | us
| ) | `[virtual]`

| Handle events, return true if handled, false otherwise. Reimplemented from osgGA::GUIEventHandler. Reimplemented in osgGA::DriveManipulator, osgGA::FlightManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

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

| Move the camera to the default position. May be ignored by manipulators if home functionality is not appropriate. Reimplemented in osgGA::AnimationPathManipulator, osgGA::DriveManipulator, osgGA::FlightManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

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

| Start/restart the manipulator. FIXME: what does this actually mean? Provide examples. Reimplemented in osgGA::AnimationPathManipulator, osgGA::DriveManipulator, osgGA::FlightManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

virtual void osgGA::MatrixManipulator::setAutoComputeHomePosition | ( | bool | flag | ) | `[inline, virtual]`

| Set whether the automatic compute of the home position is enabled. Reimplemented in osgGA::KeySwitchMatrixManipulator.

virtual void osgGA::MatrixManipulator::setByInverseMatrix | ( | const osg::Matrixd & | matrix | ) | `[pure virtual]`

| set the position of the matrix manipulator using a 4x4 Matrix. Implemented in osgGA::AnimationPathManipulator, osgGA::DriveManipulator, osgGA::FlightManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

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

| set the position of the matrix manipulator using a 4x4 Matrix. Implemented in osgGA::AnimationPathManipulator, osgGA::DriveManipulator, osgGA::FlightManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

virtual void osgGA::MatrixManipulator::setCoordinateFrameCallback | ( | CoordinateFrameCallback * | cb | ) | `[inline, virtual]`

| set the coordinate frame which callback tells the manipulator which way is up, east and north. Reimplemented in osgGA::KeySwitchMatrixManipulator.

virtual void osgGA::MatrixManipulator::setHomePosition | ( | const osg::Vec3d & | eye,
|  | const osg::Vec3d & | center,
|  | const osg::Vec3d & | up,
|  | bool | autoComputeHomePosition = `false`
| ) | `[inline, virtual]`

| Manually set the home position, and set the automatic compute of home position. Reimplemented in osgGA::KeySwitchMatrixManipulator.

virtual void osgGA::MatrixManipulator::setMinimumDistance | ( | float | minimumDistance | ) | `[inline, virtual]`

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

virtual void osgGA::MatrixManipulator::setNode | ( | osg::Node * |  | ) | `[inline, virtual]`

| Attach a node to the manipulator, automatically detaching any previously attached node. setNode(NULL) detaches previous nodes. May be ignored by manipulators which do not require a reference model. Reimplemented in osgGA::DriveManipulator, osgGA::FlightManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::TerrainManipulator, and osgGA::TrackballManipulator.

## Member Data Documentation

bool osgGA::MatrixManipulator::_autoComputeHomePosition `[protected]`

osg::ref_ptr<CoordinateFrameCallback> osgGA::MatrixManipulator::_coordinateFrameCallback `[protected]`

osg::Vec3d osgGA::MatrixManipulator::_homeCenter `[protected]`

osg::Vec3d osgGA::MatrixManipulator::_homeEye `[protected]`

osg::Vec3d osgGA::MatrixManipulator::_homeUp `[protected]`

double osgGA::MatrixManipulator::_minimumDistance `[protected]`

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

- MatrixManipulator
- MatrixManipulator.cpp