|
OpenSceneGraph
|
StandardManipulator class provides basic functionality for user controlled manipulation. More...


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 Types inherited from osg::Object | |
| enum | DataVariance { DYNAMIC, STATIC, UNSPECIFIED } |
Public Member Functions | |
| StandardManipulator (int flags=DEFAULT_SETTINGS) | |
| StandardManipulator (const StandardManipulator &m, const osg::CopyOp ©Op=osg::CopyOp::SHALLOW_COPY) | |
| virtual const char * | className () const |
| return the name of the object's class type. More... | |
| virtual void | setTransformation (const osg::Vec3d &eye, const osg::Quat &rotation)=0 |
| Sets manipulator by eye position and eye orientation. More... | |
| virtual void | setTransformation (const osg::Vec3d &eye, const osg::Vec3d ¢er, const osg::Vec3d &up)=0 |
| Sets manipulator by eye position, center of rotation, and up vector. More... | |
| virtual void | getTransformation (osg::Vec3d &eye, osg::Quat &rotation) const =0 |
| Gets manipulator's eye position and eye orientation. More... | |
| virtual void | getTransformation (osg::Vec3d &eye, osg::Vec3d ¢er, osg::Vec3d &up) const =0 |
| Gets manipulator's focal center, eye position, and up vector. More... | |
| virtual void | setNode (osg::Node *) |
| Attach a node to the manipulator, automatically detaching any previously attached node. More... | |
| virtual const osg::Node * | getNode () const |
| Return const node if attached. More... | |
| virtual osg::Node * | getNode () |
| Return node if attached. More... | |
| 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 () |
| finish any active manipulator animations. More... | |
| virtual void | home (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us) |
| Move the camera to the default position. More... | |
| virtual void | home (double) |
| Move the camera to the default position. More... | |
| virtual void | init (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us) |
| Start/restart the manipulator. More... | |
| virtual bool | handle (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us) |
| Handle events, return true if handled, false otherwise. More... | |
| virtual void | getUsage (osg::ApplicationUsage &usage) const |
| Get the user interface usage of this event handler, i.e. More... | |
Public Member Functions inherited from osgGA::CameraManipulator | |
| virtual void | setCoordinateFrameCallback (CoordinateFrameCallback *cb) |
| set the coordinate frame which callback tells the manipulator which way is up, east and north. More... | |
| CoordinateFrameCallback * | getCoordinateFrameCallback () |
| get the coordinate frame callback which tells the manipulator which way is up, east and north. More... | |
| const CoordinateFrameCallback * | getCoordinateFrameCallback () const |
| get the coordinate frame callback which tells the manipulator which way is up, east and north. More... | |
| osg::CoordinateFrame | getCoordinateFrame (const osg::Vec3d &position) const |
| get the coordinate frame. More... | |
| 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. More... | |
| virtual void | setByInverseMatrix (const osg::Matrixd &matrix)=0 |
| set the position of the matrix manipulator using a 4x4 Matrix. More... | |
| virtual osg::Matrixd | getMatrix () const =0 |
| get the position of the manipulator as 4x4 Matrix. More... | |
| 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. More... | |
| virtual void | updateCamera (osg::Camera &camera) |
| update the camera for the current frame, typically called by the viewer classes. More... | |
| virtual osgUtil::SceneView::FusionDistanceMode | getFusionDistanceMode () const |
| Get the FusionDistanceMode. More... | |
| virtual float | getFusionDistanceValue () const |
| Get the FusionDistanceValue. More... | |
| void | setIntersectTraversalMask (unsigned int mask) |
| Set the mask to use when set up intersection traversal such as used in manipulators that follow terrain or have collision detection. More... | |
| unsigned int | getIntersectTraversalMask () const |
| Get the mask to use when set up intersection traversal such as used in manipulators that follow terrain or have collision detection. More... | |
| virtual void | setHomePosition (const osg::Vec3d &eye, const osg::Vec3d ¢er, const osg::Vec3d &up, bool autoComputeHomePosition=false) |
| Manually set the home position, and set the automatic compute of home position. More... | |
| virtual void | getHomePosition (osg::Vec3d &eye, osg::Vec3d ¢er, osg::Vec3d &up) const |
| Get the manually set home position. More... | |
| virtual void | setAutoComputeHomePosition (bool flag) |
| Set whether the automatic compute of the home position is enabled. More... | |
| bool | getAutoComputeHomePosition () const |
| Get whether the automatic compute of the home position is enabled. More... | |
| virtual void | computeHomePosition (const osg::Camera *camera=NULL, bool useBoundingBox=false) |
| Compute the home position. More... | |
| virtual bool | handle (osgGA::Event *event, osg::Object *object, osg::NodeVisitor *nv) |
| Handle event. More... | |
Public Member Functions inherited from osgGA::GUIEventHandler | |
| GUIEventHandler (const GUIEventHandler &eh, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
| META_Object (osgGA, GUIEventHandler) | |
| virtual bool | handle (const GUIEventAdapter &ea, GUIActionAdapter &aa, osg::Object *, osg::NodeVisitor *) |
| Handle events, return true if handled, false otherwise. More... | |
Public Member Functions inherited from osgGA::EventHandler | |
| EventHandler (const EventHandler &eh, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
| META_Object (osgGA, EventHandler) | |
| virtual bool | run (osg::Object *object, osg::Object *data) |
| NodeCallback overrides the Callback::run() method to adapt it the old style NodeCallback::operator()(Node* node, NodeVisitor* nv) method. More... | |
| virtual void | operator() (osg::Node *node, osg::NodeVisitor *nv) |
| Event traversal node callback method. More... | |
| virtual void | event (osg::NodeVisitor *nv, osg::Drawable *drawable) |
| Event traversal drawable callback method. More... | |
Public Member Functions inherited from osg::NodeCallback | |
| NodeCallback (const NodeCallback &nc, const CopyOp ©op) | |
| META_Object (osg, NodeCallback) | |
Public Member Functions inherited from osg::Callback | |
| Callback (const Callback &cb, const CopyOp ©op) | |
| META_Object (osg, Callback) | |
| bool | traverse (osg::Object *object, osg::Object *data) |
| traverse the nested callbacks or call NodeVisitor::traverse() if the object is Node, and data is NodeVisitor. More... | |
| void | setNestedCallback (osg::Callback *cb) |
| osg::Callback * | getNestedCallback () |
| const osg::Callback * | getNestedCallback () const |
| void | addNestedCallback (osg::Callback *nc) |
| void | removeNestedCallback (osg::Callback *nc) |
Public Member Functions inherited from osg::Object | |
| Object () | |
| Construct an object. More... | |
| Object (bool threadSafeRefUnref) | |
| Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
| Copy constructor, optional CopyOp object can be used to control shallow vs deep copying of dynamic data. More... | |
| virtual Object * | cloneType () const =0 |
| Clone the type of an object, with Object* return type. More... | |
| virtual Object * | clone (const CopyOp &) const =0 |
| Clone an object, with Object* return type. More... | |
| virtual bool | isSameKindAs (const Object *) const |
| virtual const char * | libraryName () const =0 |
| return the name of the object's library. More... | |
| std::string | getCompoundClassName () const |
| return the compound class name that combines the library name and class name. More... | |
| virtual Node * | asNode () |
| Convert 'this' into a Node pointer if Object is a Node, otherwise return 0. More... | |
| virtual const Node * | asNode () const |
| convert 'const this' into a const Node pointer if Object is a Node, otherwise return 0. More... | |
| virtual NodeVisitor * | asNodeVisitor () |
| Convert 'this' into a NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. More... | |
| virtual const NodeVisitor * | asNodeVisitor () const |
| convert 'const this' into a const NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. More... | |
| virtual StateAttribute * | asStateAttribute () |
| Convert 'this' into a StateAttribute pointer if Object is a StateAttribute, otherwise return 0. More... | |
| virtual const StateAttribute * | asStateAttribute () const |
| convert 'const this' into a const StateAttribute pointer if Object is a StateAttribute, otherwise return 0. More... | |
| virtual Uniform * | asUniform () |
| Convert 'this' into a Uniform pointer if Object is a Uniform, otherwise return 0. More... | |
| virtual const Uniform * | asUniform () const |
| convert 'const this' into a const Uniform pointer if Object is a Uniform, otherwise return 0. More... | |
| virtual void | setThreadSafeRefUnref (bool threadSafe) |
| Set whether to use a mutex to ensure ref() and unref() are thread safe. More... | |
| virtual void | setName (const std::string &name) |
| Set the name of object using C++ style string. More... | |
| void | setName (const char *name) |
| Set the name of object using a C style string. More... | |
| const std::string & | getName () const |
| Get the name of object. More... | |
| void | setDataVariance (DataVariance dv) |
| Set the data variance of this object. More... | |
| DataVariance | getDataVariance () const |
| Get the data variance of this object. More... | |
| virtual void | computeDataVariance () |
| Compute the DataVariance based on an assessment of callback etc. More... | |
| void | setUserDataContainer (osg::UserDataContainer *udc) |
| set the UserDataContainer object. More... | |
| template<class T > | |
| void | setUserDataContainer (const ref_ptr< T > &udc) |
| osg::UserDataContainer * | getUserDataContainer () |
| get the UserDataContainer attached to this object. More... | |
| const osg::UserDataContainer * | getUserDataContainer () const |
| get the const UserDataContainer attached to this object. More... | |
| osg::UserDataContainer * | getOrCreateUserDataContainer () |
| Convenience method that returns the UserDataContainer, and if one doesn't already exist creates and assigns a DefaultUserDataContainer to the Object and then return this new UserDataContainer. More... | |
| virtual void | setUserData (Referenced *obj) |
| Set user data, data must be subclassed from Referenced to allow automatic memory handling. More... | |
| template<class T > | |
| void | setUserData (const ref_ptr< T > &ud) |
| virtual Referenced * | getUserData () |
| Get user data. More... | |
| virtual const Referenced * | getUserData () const |
| Get const user data. More... | |
| template<typename T > | |
| bool | getUserValue (const std::string &name, T &value) const |
| Convenience method that casts the named UserObject to osg::TemplateValueObject<T> and gets the value. More... | |
| template<typename T > | |
| void | setUserValue (const std::string &name, const T &value) |
| Convenience method that creates the osg::TemplateValueObject<T> to store the specified value and adds it as a named UserObject. More... | |
| virtual void | resizeGLObjectBuffers (unsigned int) |
| Resize any per context GLObject buffers to specified size. More... | |
| virtual void | releaseGLObjects (osg::State *=0) const |
| If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context. More... | |
| template<typename T > | |
| BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const |
| provide implementation of osg::Object::getUserValue(..) template | |
Public Member Functions inherited from osg::Referenced | |
| Referenced (bool threadSafeRefUnref) | |
| Referenced (const Referenced &) | |
| Referenced & | operator= (const Referenced &) |
| bool | getThreadSafeRefUnref () const |
| Get whether a mutex is used to ensure ref() and unref() are thread safe. More... | |
| bool | getThreadSafeRefUnref () const |
| OpenThreads::Mutex * | getRefMutex () const |
| Get the mutex used to ensure thread safety of ref()/unref(). More... | |
| OpenThreads::Mutex * | getRefMutex () const |
| int | ref () const |
| Increment the reference count by one, indicating that this object has another pointer which is referencing it. More... | |
| int | unref () const |
| Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
| int | unref_nodelete () const |
| Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
| int | referenceCount () const |
| Return the number of pointers currently referencing this object. More... | |
| ObserverSet * | getObserverSet () const |
| Get the ObserverSet if one is attached, otherwise return NULL. More... | |
| ObserverSet * | getOrCreateObserverSet () const |
| Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet. More... | |
| void | addObserver (Observer *observer) const |
| Add a Observer that is observing this object, notify the Observer when this object gets deleted. More... | |
| void | removeObserver (Observer *observer) const |
| Remove Observer that is observing this object. More... | |
Public Member Functions inherited from osg::Drawable::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 (const CameraManipulator &mm, const osg::CopyOp ©Op=osg::CopyOp::SHALLOW_COPY) | |
| std::string | getManipulatorName () const |
Protected Member Functions inherited from osg::Object | |
| virtual | ~Object () |
| Object destructor. More... | |
Protected Member Functions inherited from osg::Referenced | |
| void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
| void | deleteUsingDeleteHandler () 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 |
| The approximate amount of time it is currently taking to draw a frame. More... | |
| double | _last_frame_time |
| The time the last frame started. More... | |
| 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 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 |
| OpenThreads::Mutex * | _refMutex |
| int | _refCount |
| void * | _observerSet |
Static Protected Attributes | |
| static int | numRelativeFlagsAllocated |
Additional Inherited Members | |
Static Public Member Functions inherited from osg::Referenced | |
| static OpenThreads::Mutex * | getGlobalReferencedMutex () |
| Get the optional global Referenced mutex, this can be shared between all osg::Referenced. More... | |
| static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
| Set whether reference counting should use a mutex for thread safe reference counting. More... | |
| static bool | getThreadSafeReferenceCounting () |
| Get whether reference counting is active. More... | |
| static void | setDeleteHandler (DeleteHandler *handler) |
| Set a DeleteHandler to which deletion of all referenced counted objects will be delegated. More... | |
| static DeleteHandler * | getDeleteHandler () |
| Get a DeleteHandler. More... | |
StandardManipulator class provides basic functionality for user controlled manipulation.
|
inlinevirtual |
return the name of the object's class type.
Must be defined by derived classes.
Reimplemented from osgGA::CameraManipulator.
|
virtual |
finish any active manipulator animations.
Reimplemented from osgGA::CameraManipulator.
|
virtual |
Return const node if attached.
Reimplemented from osgGA::CameraManipulator.
|
virtual |
Return node if attached.
Reimplemented from osgGA::CameraManipulator.
|
pure virtual |
Gets manipulator's eye position and eye orientation.
Implemented in osgGA::OrbitManipulator, and osgGA::FirstPersonManipulator.
|
pure virtual |
Gets manipulator's focal center, eye position, and up vector.
Implemented in osgGA::OrbitManipulator, and osgGA::FirstPersonManipulator.
|
virtual |
Get the user interface usage of this event handler, i.e.
keyboard and mouse bindings.
Reimplemented from osgGA::EventHandler.
Reimplemented in osgGA::FlightManipulator.
|
virtual |
Handle events, return true if handled, false otherwise.
Reimplemented from osgGA::CameraManipulator.
Reimplemented in osgGA::MultiTouchTrackballManipulator.
|
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 |
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 |
Start/restart the manipulator.
FIXME: what does this actually mean? Provide examples.
Reimplemented from osgGA::CameraManipulator.
Reimplemented in osgGA::FirstPersonManipulator, and osgGA::FlightManipulator.
|
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.
|
pure virtual |
Sets manipulator by eye position and eye orientation.
Implemented in osgGA::OrbitManipulator, and osgGA::FirstPersonManipulator.
|
pure virtual |
Sets manipulator by eye position, center of rotation, and up vector.
Implemented in osgGA::OrbitManipulator, osgGA::FirstPersonManipulator, and osgGA::TerrainManipulator.
|
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.
|
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.
1.8.13