openscenegraph
Classes | Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
osgGA::StandardManipulator Class Reference
Inheritance diagram for osgGA::StandardManipulator:
osgGA::CameraManipulator osgGA::GUIEventHandler osg::NodeCallback osg::Drawable::EventCallback osg::Object osg::Object osg::Referenced osg::Referenced osgGA::FirstPersonManipulator osgGA::OrbitManipulator osgGA::FlightManipulator osgGA::NodeTrackerManipulator osgGA::TerrainManipulator osgGA::TrackballManipulator osgGA::MultiTouchTrackballManipulator

Classes

class  AnimationData

Public Types

enum  UserInteractionFlags {
  UPDATE_MODEL_SIZE = 0x01, COMPUTE_HOME_USING_BBOX = 0x02, PROCESS_MOUSE_WHEEL = 0x04, SET_CENTER_ON_WHEEL_FORWARD_MOVEMENT = 0x08,
  DEFAULT_SETTINGS = UPDATE_MODEL_SIZE | PROCESS_MOUSE_WHEEL
}

Public Member Functions

 StandardManipulator (int flags=DEFAULT_SETTINGS)
 StandardManipulator (const StandardManipulator &m, const osg::CopyOp &copyOp=osg::CopyOp::SHALLOW_COPY)
virtual const char * className () const
virtual void setTransformation (const osg::Vec3d &eye, const osg::Quat &rotation)=0
virtual void setTransformation (const osg::Vec3d &eye, const osg::Vec3d &center, const osg::Vec3d &up)=0
virtual void getTransformation (osg::Vec3d &eye, osg::Quat &rotation) const =0
virtual void getTransformation (osg::Vec3d &eye, osg::Vec3d &center, osg::Vec3d &up) const =0
virtual void setNode (osg::Node *)
virtual const osg::NodegetNode () const
virtual osg::NodegetNode ()
virtual void setVerticalAxisFixed (bool value)
bool getVerticalAxisFixed () const
 Returns whether manipulator preserves camera's "UP" vector.
bool getAllowThrow () const
 Returns true if the camera can be thrown, false otherwise. It defaults to true.
virtual void setAllowThrow (bool allowThrow)
virtual void setAnimationTime (const double t)
double getAnimationTime () const
bool isAnimating () const
virtual void finishAnimation ()
virtual void home (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual void home (double)
virtual void init (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool handle (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual void getUsage (osg::ApplicationUsage &usage) 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 setByMatrix (const osg::Matrixd &matrix)=0
virtual void setByInverseMatrix (const osg::Matrixd &matrix)=0
virtual osg::Matrixd getMatrix () const =0
virtual osg::Matrixd getInverseMatrix () const =0
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)
- Public Member Functions inherited from osgGA::GUIEventHandler
 GUIEventHandler ()
 GUIEventHandler (const GUIEventHandler &eh, const osg::CopyOp &copyop)
 META_Object (osgGA, GUIEventHandler)
virtual void operator() (osg::Node *node, osg::NodeVisitor *nv)
virtual void event (osg::NodeVisitor *nv, osg::Drawable *drawable)
virtual bool handle (const GUIEventAdapter &ea, GUIActionAdapter &aa, osg::Object *, osg::NodeVisitor *)
bool handleWithCheckAgainstIgnoreHandledEventsMask (const GUIEventAdapter &ea, GUIActionAdapter &aa, osg::Object *object, osg::NodeVisitor *nv)
bool handleWithCheckAgainstIgnoreHandledEventsMask (const GUIEventAdapter &ea, GUIActionAdapter &aa)
void setIgnoreHandledEventsMask (unsigned int mask)
unsigned int getIgnoreHandledEventsMask () const
- Public Member Functions inherited from osg::NodeCallback
 NodeCallback ()
 NodeCallback (const NodeCallback &nc, const CopyOp &)
 META_Object (osg, NodeCallback)
void traverse (Node *node, NodeVisitor *nv)
void setNestedCallback (NodeCallback *nc)
NodeCallbackgetNestedCallback ()
const NodeCallbackgetNestedCallback () const
void addNestedCallback (NodeCallback *nc)
void removeNestedCallback (NodeCallback *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
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)
osg::UserDataContainergetUserDataContainer ()
const osg::UserDataContainergetUserDataContainer () const
osg::UserDataContainergetOrCreateUserDataContainer ()
virtual void setUserData (Referenced *obj)
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
- 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::Drawable::EventCallback
 EventCallback ()
 EventCallback (const EventCallback &, const CopyOp &)
 META_Object (osg, EventCallback)

Protected Member Functions

virtual bool handleFrame (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool handleResize (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool handleMouseMove (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool handleMouseDrag (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool handleMousePush (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool handleMouseRelease (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool handleKeyDown (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool handleKeyUp (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool handleMouseWheel (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool handleMouseDeltaMovement (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool performMovement ()
virtual bool performMovementLeftMouseButton (const double eventTimeDelta, const double dx, const double dy)
virtual bool performMovementMiddleMouseButton (const double eventTimeDelta, const double dx, const double dy)
virtual bool performMovementRightMouseButton (const double eventTimeDelta, const double dx, const double dy)
virtual bool performMouseDeltaMovement (const float dx, const float dy)
virtual bool performAnimationMovement (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual void applyAnimationStep (const double currentProgress, const double prevProgress)
void addMouseEvent (const osgGA::GUIEventAdapter &ea)
void flushMouseEventStack ()
virtual bool isMouseMoving () const
float getThrowScale (const double eventTimeDelta) const
virtual void centerMousePointer (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
void fixVerticalAxis (osg::Vec3d &eye, osg::Quat &rotation, bool disallowFlipOver)
virtual bool setCenterByMousePointerIntersection (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool startAnimationByMousePointerIntersection (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual void allocAnimationData ()
bool getRelativeFlag (int index) const
void setRelativeFlag (int index, bool value)
- 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

Static Protected Member Functions

static void rotateYawPitch (osg::Quat &rotation, const double yaw, const double pitch, const osg::Vec3d &localUp=osg::Vec3d(0., 0., 0.))
static void fixVerticalAxis (osg::Quat &rotation, const osg::Vec3d &localUp, bool disallowFlipOver)
static void fixVerticalAxis (const osg::Vec3d &forward, const osg::Vec3d &up, osg::Vec3d &newUp, const osg::Vec3d &localUp, bool disallowFlipOver)
static int allocateRelativeFlag ()

Protected Attributes

bool _thrown
bool _allowThrow
float _mouseCenterX
float _mouseCenterY
osg::ref_ptr< const
osgGA::GUIEventAdapter
_ga_t1
osg::ref_ptr< const
osgGA::GUIEventAdapter
_ga_t0
double _delta_frame_time
double _last_frame_time
osg::ref_ptr< osg::Node_node
double _modelSize
bool _verticalAxisFixed
osg::ref_ptr< AnimationData_animationData
int _flags
int _relativeFlags
- 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 osgGA::GUIEventHandler
unsigned int _ignoreHandledEventsMask

Static Protected Attributes

static int numRelativeFlagsAllocated

Additional Inherited Members

- Static Public Member Functions inherited from osg::Referenced
static OpenThreads::MutexgetGlobalReferencedMutex ()
static void setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting)
static bool getThreadSafeReferenceCounting ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandlergetDeleteHandler ()
- Public Attributes inherited from osg::NodeCallback
ref_ptr< NodeCallback_nestedCallback

Detailed Description

StandardManipulator class provides basic functionality for user controlled manipulation.

Member Enumeration Documentation

Enumerator:
UPDATE_MODEL_SIZE 
COMPUTE_HOME_USING_BBOX 
PROCESS_MOUSE_WHEEL 
SET_CENTER_ON_WHEEL_FORWARD_MOVEMENT 
DEFAULT_SETTINGS 

Constructor & Destructor Documentation

osgGA::StandardManipulator::StandardManipulator ( int  flags = DEFAULT_SETTINGS)
osgGA::StandardManipulator::StandardManipulator ( const StandardManipulator m,
const osg::CopyOp copyOp = osg::CopyOp::SHALLOW_COPY 
)

Member Function Documentation

void osgGA::StandardManipulator::addMouseEvent ( const osgGA::GUIEventAdapter ea)
protected
virtual void osgGA::StandardManipulator::allocAnimationData ( )
inlineprotectedvirtual
static int osgGA::StandardManipulator::allocateRelativeFlag ( )
staticprotected
virtual void osgGA::StandardManipulator::applyAnimationStep ( const double  currentProgress,
const double  prevProgress 
)
protectedvirtual
virtual void osgGA::StandardManipulator::centerMousePointer ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual
virtual const char* osgGA::StandardManipulator::className ( ) const
inlinevirtual

return the name of the object's class type. Must be defined by derived classes.

Reimplemented from osgGA::CameraManipulator.

virtual void osgGA::StandardManipulator::finishAnimation ( )
virtual
static void osgGA::StandardManipulator::fixVerticalAxis ( osg::Quat rotation,
const osg::Vec3d localUp,
bool  disallowFlipOver 
)
staticprotected
void osgGA::StandardManipulator::fixVerticalAxis ( osg::Vec3d eye,
osg::Quat rotation,
bool  disallowFlipOver 
)
protected
static void osgGA::StandardManipulator::fixVerticalAxis ( const osg::Vec3d forward,
const osg::Vec3d up,
osg::Vec3d newUp,
const osg::Vec3d localUp,
bool  disallowFlipOver 
)
staticprotected
void osgGA::StandardManipulator::flushMouseEventStack ( )
protected
bool osgGA::StandardManipulator::getAllowThrow ( ) const
inline

Returns true if the camera can be thrown, false otherwise. It defaults to true.

References _allowThrow.

double osgGA::StandardManipulator::getAnimationTime ( ) const
virtual const osg::Node* osgGA::StandardManipulator::getNode ( ) const
virtual

Return const node if attached.

Reimplemented from osgGA::CameraManipulator.

virtual osg::Node* osgGA::StandardManipulator::getNode ( )
virtual

Return node if attached.

Reimplemented from osgGA::CameraManipulator.

bool osgGA::StandardManipulator::getRelativeFlag ( int  index) const
inlineprotected

References _relativeFlags.

float osgGA::StandardManipulator::getThrowScale ( const double  eventTimeDelta) const
protected
virtual void osgGA::StandardManipulator::getTransformation ( osg::Vec3d eye,
osg::Quat rotation 
) const
pure virtual

Gets manipulator's eye position and eye orientation.

Implemented in osgGA::OrbitManipulator, and osgGA::FirstPersonManipulator.

virtual void osgGA::StandardManipulator::getTransformation ( osg::Vec3d eye,
osg::Vec3d center,
osg::Vec3d up 
) const
pure virtual

Gets manipulator's focal center, eye position, and up vector.

Implemented in osgGA::OrbitManipulator, and osgGA::FirstPersonManipulator.

virtual void osgGA::StandardManipulator::getUsage ( osg::ApplicationUsage ) const
virtual

Get the keyboard and mouse usage of this manipulator.

Reimplemented from osgGA::GUIEventHandler.

Reimplemented in osgGA::FlightManipulator.

bool osgGA::StandardManipulator::getVerticalAxisFixed ( ) const
inline

Returns whether manipulator preserves camera's "UP" vector.

References _verticalAxisFixed.

virtual bool osgGA::StandardManipulator::handle ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
virtual

Handle events, return true if handled, false otherwise.

Reimplemented from osgGA::CameraManipulator.

Reimplemented in osgGA::MultiTouchTrackballManipulator.

virtual bool osgGA::StandardManipulator::handleFrame ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual

Reimplemented in osgGA::FlightManipulator.

virtual bool osgGA::StandardManipulator::handleKeyDown ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual

Reimplemented in osgGA::FlightManipulator.

virtual bool osgGA::StandardManipulator::handleKeyUp ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual
virtual bool osgGA::StandardManipulator::handleMouseDeltaMovement ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual
virtual bool osgGA::StandardManipulator::handleMouseDrag ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual

Reimplemented in osgGA::FlightManipulator.

virtual bool osgGA::StandardManipulator::handleMouseMove ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual

Reimplemented in osgGA::FlightManipulator.

virtual bool osgGA::StandardManipulator::handleMousePush ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual

Reimplemented in osgGA::FlightManipulator.

virtual bool osgGA::StandardManipulator::handleMouseRelease ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual

Reimplemented in osgGA::FlightManipulator.

virtual bool osgGA::StandardManipulator::handleMouseWheel ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual
virtual bool osgGA::StandardManipulator::handleResize ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual
virtual void osgGA::StandardManipulator::home ( const osgGA::GUIEventAdapter ,
osgGA::GUIActionAdapter  
)
virtual

Move the camera to the default position. May be ignored by manipulators if home functionality is not appropriate.

Reimplemented from osgGA::CameraManipulator.

Reimplemented in osgGA::FirstPersonManipulator, and osgGA::FlightManipulator.

virtual void osgGA::StandardManipulator::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.

Reimplemented in osgGA::FirstPersonManipulator.

virtual void osgGA::StandardManipulator::init ( const osgGA::GUIEventAdapter ,
osgGA::GUIActionAdapter  
)
virtual

Start/restart the manipulator. FIXME: what does this actually mean? Provide examples.

Reimplemented from osgGA::CameraManipulator.

Reimplemented in osgGA::FirstPersonManipulator, and osgGA::FlightManipulator.

bool osgGA::StandardManipulator::isAnimating ( ) const
virtual bool osgGA::StandardManipulator::isMouseMoving ( ) const
protectedvirtual
virtual bool osgGA::StandardManipulator::performAnimationMovement ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual
virtual bool osgGA::StandardManipulator::performMouseDeltaMovement ( const float  dx,
const float  dy 
)
protectedvirtual
virtual bool osgGA::StandardManipulator::performMovement ( )
protectedvirtual

Reimplemented in osgGA::FlightManipulator.

virtual bool osgGA::StandardManipulator::performMovementLeftMouseButton ( const double  eventTimeDelta,
const double  dx,
const double  dy 
)
protectedvirtual
virtual bool osgGA::StandardManipulator::performMovementMiddleMouseButton ( const double  eventTimeDelta,
const double  dx,
const double  dy 
)
protectedvirtual
virtual bool osgGA::StandardManipulator::performMovementRightMouseButton ( const double  eventTimeDelta,
const double  dx,
const double  dy 
)
protectedvirtual
static void osgGA::StandardManipulator::rotateYawPitch ( osg::Quat rotation,
const double  yaw,
const double  pitch,
const osg::Vec3d localUp = osg::Vec3d(0., 0., 0.) 
)
staticprotected
virtual void osgGA::StandardManipulator::setAllowThrow ( bool  allowThrow)
virtual
virtual void osgGA::StandardManipulator::setAnimationTime ( const double  t)
virtual
virtual bool osgGA::StandardManipulator::setCenterByMousePointerIntersection ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual
virtual void osgGA::StandardManipulator::setNode ( osg::Node )
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 from osgGA::CameraManipulator.

Reimplemented in osgGA::NodeTrackerManipulator, and osgGA::TerrainManipulator.

void osgGA::StandardManipulator::setRelativeFlag ( int  index,
bool  value 
)
inlineprotected

References _relativeFlags.

virtual void osgGA::StandardManipulator::setTransformation ( const osg::Vec3d eye,
const osg::Quat rotation 
)
pure virtual

Sets manipulator by eye position and eye orientation.

Implemented in osgGA::OrbitManipulator, and osgGA::FirstPersonManipulator.

virtual void osgGA::StandardManipulator::setTransformation ( const osg::Vec3d eye,
const osg::Vec3d center,
const osg::Vec3d up 
)
pure virtual

Sets manipulator by eye position, center of rotation, and up vector.

Implemented in osgGA::OrbitManipulator, osgGA::FirstPersonManipulator, and osgGA::TerrainManipulator.

virtual void osgGA::StandardManipulator::setVerticalAxisFixed ( bool  value)
virtual
virtual bool osgGA::StandardManipulator::startAnimationByMousePointerIntersection ( const osgGA::GUIEventAdapter ea,
osgGA::GUIActionAdapter us 
)
protectedvirtual

Member Data Documentation

bool osgGA::StandardManipulator::_allowThrow
protected

Referenced by getAllowThrow().

osg::ref_ptr< AnimationData > osgGA::StandardManipulator::_animationData
protected
double osgGA::StandardManipulator::_delta_frame_time
protected

The approximate amount of time it is currently taking to draw a frame. This is used to compute the delta in translation/rotation during a thrown display update. It allows us to match an delta in position/rotation independent of the rendering frame rate.

int osgGA::StandardManipulator::_flags
protected
osg::ref_ptr< const osgGA::GUIEventAdapter > osgGA::StandardManipulator::_ga_t0
protected
osg::ref_ptr< const osgGA::GUIEventAdapter > osgGA::StandardManipulator::_ga_t1
protected
double osgGA::StandardManipulator::_last_frame_time
protected

The time the last frame started. Used when _rate_sensitive is true so that we can match display update rate to rotation/translation rate.

double osgGA::StandardManipulator::_modelSize
protected
float osgGA::StandardManipulator::_mouseCenterX
protected
float osgGA::StandardManipulator::_mouseCenterY
protected
osg::ref_ptr< osg::Node > osgGA::StandardManipulator::_node
protected
int osgGA::StandardManipulator::_relativeFlags
protected

Referenced by getRelativeFlag(), and setRelativeFlag().

bool osgGA::StandardManipulator::_thrown
protected
bool osgGA::StandardManipulator::_verticalAxisFixed
protected

Referenced by getVerticalAxisFixed().

int osgGA::StandardManipulator::numRelativeFlagsAllocated
staticprotected

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