openscenegraph
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
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

◆ 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

◆ getMinHeight()

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

◆ 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

◆ 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

◆ setMinDistance()

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

◆ setMinHeight()

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

◆ 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

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

◆ _inverseMatrix

osg::Matrixd osgGA::UFOManipulator::_inverseMatrix
protected

◆ _matrix

osg::Matrixd osgGA::UFOManipulator::_matrix
protected

◆ _minDistanceInFront

double osgGA::UFOManipulator::_minDistanceInFront
protected

◆ _minHeightAboveGround

double osgGA::UFOManipulator::_minHeightAboveGround
protected

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

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