openscenegraph
osgGA::UFOManipulator Class Reference

A UFO manipulator driven with keybindings. More...

#include <UFOManipulator>

Inheritance diagram for osgGA::UFOManipulator:
osgGA::CameraManipulator osgGA::GUIEventHandler osgGA::EventHandler osg::NodeCallback osg::DrawableEventCallback osg::Callback osg::Callback osg::Object osg::Object osg::Referenced osg::Referenced

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::NodegetNode () const
virtual osg::NodegetNode ()
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)
CoordinateFrameCallbackgetCoordinateFrameCallback ()
const CoordinateFrameCallbackgetCoordinateFrameCallback () 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 NodeCallbackasNodeCallback ()
virtual const NodeCallbackasNodeCallback () const
virtual DrawableEventCallbackasDrawableEventCallback ()
virtual const DrawableEventCallbackasDrawableEventCallback () const
virtual EventHandlerasEventHandler ()
virtual const EventHandlerasEventHandler () 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 CallbackasCallback ()
virtual const CallbackasCallback () const
virtual CallbackObjectasCallbackObject ()
virtual const CallbackObjectasCallbackObject () const
virtual StateAttributeCallbackasStateAttributeCallback ()
virtual const StateAttributeCallbackasStateAttributeCallback () const
virtual UniformCallbackasUniformCallback ()
virtual const UniformCallbackasUniformCallback () const
virtual DrawableUpdateCallbackasDrawableUpdateCallback ()
virtual const DrawableUpdateCallbackasDrawableUpdateCallback () const
virtual DrawableCullCallbackasDrawableCullCallback ()
virtual const DrawableCullCallbackasDrawableCullCallback () const
bool traverse (osg::Object *object, osg::Object *data)
void setNestedCallback (osg::Callback *cb)
osg::CallbackgetNestedCallback ()
const osg::CallbackgetNestedCallback () 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 ObjectcloneType () const =0
virtual Objectclone (const CopyOp &) const =0
virtual bool isSameKindAs (const Object *) const
virtual const char * libraryName () const =0
std::string getCompoundClassName () const
virtual NodeasNode ()
virtual const NodeasNode () const
virtual NodeVisitorasNodeVisitor ()
virtual const NodeVisitorasNodeVisitor () const
virtual StateSetasStateSet ()
virtual const StateSetasStateSet () const
virtual StateAttributeasStateAttribute ()
virtual const StateAttributeasStateAttribute () const
virtual UniformasUniform ()
virtual const UniformasUniform () const
virtual CameraasCamera ()
virtual const CameraasCamera () const
virtual DrawableasDrawable ()
virtual const DrawableasDrawable () const
virtual UserDataContainerasUserDataContainer ()
virtual const UserDataContainerasUserDataContainer () const
virtual ValueObjectasValueObject ()
virtual const ValueObjectasValueObject () const
virtual ImageasImage ()
virtual const ImageasImage () 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::UserDataContainergetUserDataContainer ()
const osg::UserDataContainergetUserDataContainer () const
osg::UserDataContainergetOrCreateUserDataContainer ()
virtual void setUserData (Referenced *obj)
template<class T>
void setUserData (const ref_ptr< T > &ud)
virtual ReferencedgetUserData ()
virtual const ReferencedgetUserData () 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 &)
Referencedoperator= (const Referenced &)
bool getThreadSafeRefUnref () const
OpenThreads::MutexgetRefMutex () const
int ref () const
int unref () const
int unref_nodelete () const
int referenceCount () const
ObserverSetgetObserverSet () const
ObserverSetgetOrCreateObserverSet () 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::MutexgetGlobalReferencedMutex ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandlergetDeleteHandler ()

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
UpArrowAcceleration forward.
DownArrowAcceleration backward (or deceleration forward).
LeftArrowRotate view and direction of travel to the left.
RightArrowRotate view and direction of travel to the right.
SpaceBarBrake. Gradually decelerates linear and rotational movement.
Shift/UpArrowAccelerate up.
Shift/DownArrowAccelerate down.
Shift/LeftArrowAccelerate (linearly) left.
Shift/RightArrowAccelerate (linearly) right.
Shift/SpaceBarInstant 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 ( )
protectedvirtual

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

◆ 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
invmatThe 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
matrixA 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
noderoot of subgraph

Reimplemented from osgGA::CameraManipulator.

◆ setRotationSpeed()

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

◆ 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

◆ _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: