OpenSceneGraph 3.6.5
|
KeySwitchMatrixManipulator is a decorator which allows the type of camera manipulator being used to be switched by pressing a key. More...
#include <KeySwitchMatrixManipulator>
Public Types | |
typedef std::pair< std::string, osg::ref_ptr< CameraManipulator > > | NamedManipulator |
typedef std::map< int, NamedManipulator > | KeyManipMap |
Public Types inherited from osg::Object | |
enum | DataVariance { DYNAMIC , STATIC , UNSPECIFIED } |
Public Member Functions | |
virtual const char * | className () const |
return the name of the object's class type. | |
void | addMatrixManipulator (int key, std::string name, CameraManipulator *cm) |
Add a camera manipulator with an associated name, and a key to trigger the switch,. | |
void | addNumberedMatrixManipulator (CameraManipulator *cm) |
Add a camera manipulator with an autogenerated keybinding which is '1' + previous number of camera's registered. | |
unsigned int | getNumMatrixManipulators () const |
void | selectMatrixManipulator (unsigned int num) |
KeyManipMap & | getKeyManipMap () |
Get the complete list of manipulators attached to this keyswitch manipulator. | |
const KeyManipMap & | getKeyManipMap () const |
Get the const complete list of manipulators attached to this keyswitch manipulator. | |
CameraManipulator * | getCurrentMatrixManipulator () |
Get the current active manipulators. | |
const CameraManipulator * | getCurrentMatrixManipulator () const |
Get the const current active manipulators. | |
CameraManipulator * | getMatrixManipulatorWithIndex (unsigned int key) |
Get manipulator assigned to a specified index. | |
const CameraManipulator * | getMatrixManipulatorWithIndex (unsigned int key) const |
Get const manipulator assigned to a specified index. | |
CameraManipulator * | getMatrixManipulatorWithKey (unsigned int key) |
Get manipulator assigned to a specified key. | |
const CameraManipulator * | getMatrixManipulatorWithKey (unsigned int key) const |
Get const manipulator assigned to a specified key. | |
virtual void | setCoordinateFrameCallback (CoordinateFrameCallback *cb) |
set the coordinate frame which callback tells the manipulator which way is up, east and north. | |
virtual void | setByMatrix (const osg::Matrixd &matrix) |
Set the position of the matrix manipulator using a 4x4 Matrix. | |
virtual void | setByInverseMatrix (const osg::Matrixd &matrix) |
set the position of the matrix manipulator using a 4x4 Matrix. | |
virtual osg::Matrixd | getMatrix () const |
get the position of the manipulator as 4x4 Matrix. | |
virtual osg::Matrixd | getInverseMatrix () const |
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 *n) |
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 ¢er, const osg::Vec3d &up, bool autoComputeHomePosition=false) |
Manually set the home position, and set the automatic compute of home position. | |
virtual void | setAutoComputeHomePosition (bool flag) |
Set whether the automatic compute of the home position is enabled. | |
virtual void | computeHomePosition () |
virtual void | finishAnimation () |
finish any active manipulator animations. | |
virtual void | home (const GUIEventAdapter &ee, GUIActionAdapter &aa) |
Move the camera to the default position. | |
virtual void | init (const GUIEventAdapter &ee, GUIActionAdapter &aa) |
Start/restart the manipulator. | |
virtual bool | handle (const GUIEventAdapter &ea, GUIActionAdapter &us) |
Handle events, return true if handled, false otherwise. | |
virtual void | getUsage (osg::ApplicationUsage &usage) const |
Get the keyboard and mouse usage of this manipulator. | |
Public Member Functions inherited from osgGA::CameraManipulator | |
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 | updateCamera (osg::Camera &camera) |
update the camera for the current frame, typically called by the viewer classes. | |
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. | |
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. | |
virtual void | getHomePosition (osg::Vec3d &eye, osg::Vec3d ¢er, osg::Vec3d &up) const |
Get the manually set home position. | |
bool | getAutoComputeHomePosition () const |
Get whether the automatic compute of the home position is enabled. | |
virtual void | computeHomePosition (const osg::Camera *camera=NULL, bool useBoundingBox=false) |
Compute the home position. | |
virtual void | home (double) |
Move the camera to the default position. | |
virtual bool | handle (osgGA::Event *event, osg::Object *object, osg::NodeVisitor *nv) |
Handle event. | |
Public Member Functions inherited from osgGA::GUIEventHandler | |
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. | |
Public Member Functions inherited from osgGA::EventHandler | |
EventHandler () | |
EventHandler (const EventHandler &eh, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
META_Object (osgGA, EventHandler) | |
virtual NodeCallback * | asNodeCallback () |
virtual const NodeCallback * | asNodeCallback () const |
virtual DrawableEventCallback * | asDrawableEventCallback () |
virtual const DrawableEventCallback * | asDrawableEventCallback () const |
virtual EventHandler * | asEventHandler () |
virtual const EventHandler * | asEventHandler () const |
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. | |
virtual void | operator() (osg::Node *node, osg::NodeVisitor *nv) |
Event traversal node callback method. | |
virtual void | event (osg::NodeVisitor *nv, osg::Drawable *drawable) |
Event traversal drawable callback method. | |
Public Member Functions inherited from osg::NodeCallback | |
NodeCallback () | |
NodeCallback (const NodeCallback &nc, const CopyOp ©op) | |
META_Object (osg, NodeCallback) | |
Public Member Functions inherited from osg::Callback | |
Callback () | |
Callback (const Callback &cb, const CopyOp ©op) | |
META_Object (osg, Callback) | |
virtual Callback * | asCallback () |
Convert 'this' into a Callback pointer if Object is a Callback, otherwise return 0. | |
virtual const Callback * | asCallback () const |
convert 'const this' into a const Callback pointer if Object is a Callback, otherwise return 0. | |
virtual CallbackObject * | asCallbackObject () |
Convert 'this' into a CallbackObject pointer if Object is a CallbackObject, otherwise return 0. | |
virtual const CallbackObject * | asCallbackObject () const |
convert 'const this' into a const CallbackObject pointer if Object is a CallbackObject, otherwise return 0. | |
virtual StateAttributeCallback * | asStateAttributeCallback () |
virtual const StateAttributeCallback * | asStateAttributeCallback () const |
virtual UniformCallback * | asUniformCallback () |
virtual const UniformCallback * | asUniformCallback () const |
virtual DrawableUpdateCallback * | asDrawableUpdateCallback () |
virtual const DrawableUpdateCallback * | asDrawableUpdateCallback () const |
virtual DrawableCullCallback * | asDrawableCullCallback () |
virtual const DrawableCullCallback * | asDrawableCullCallback () const |
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. | |
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. | |
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. | |
virtual Object * | cloneType () const =0 |
Clone the type of an object, with Object* return type. | |
virtual Object * | clone (const CopyOp &) const =0 |
Clone an object, with Object* return type. | |
virtual bool | isSameKindAs (const Object *) const |
virtual const char * | libraryName () const =0 |
return the name of the object's library. | |
std::string | getCompoundClassName () const |
return the compound class name that combines the library name and class name. | |
virtual Node * | asNode () |
Convert 'this' into a Node pointer if Object is a Node, otherwise return 0. | |
virtual const Node * | asNode () const |
convert 'const this' into a const Node pointer if Object is a Node, otherwise return 0. | |
virtual NodeVisitor * | asNodeVisitor () |
Convert 'this' into a NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. | |
virtual const NodeVisitor * | asNodeVisitor () const |
convert 'const this' into a const NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0. | |
virtual StateSet * | asStateSet () |
Convert 'this' into a StateSet pointer if Object is a StateSet, otherwise return 0. | |
virtual const StateSet * | asStateSet () const |
convert 'const this' into a const StateSet pointer if Object is a StateSet, otherwise return 0. | |
virtual StateAttribute * | asStateAttribute () |
Convert 'this' into a StateAttribute pointer if Object is a StateAttribute, otherwise return 0. | |
virtual const StateAttribute * | asStateAttribute () const |
convert 'const this' into a const StateAttribute pointer if Object is a StateAttribute, otherwise return 0. | |
virtual Uniform * | asUniform () |
Convert 'this' into a Uniform pointer if Object is a Uniform, otherwise return 0. | |
virtual const Uniform * | asUniform () const |
convert 'const this' into a const Uniform pointer if Object is a Uniform, otherwise return 0. | |
virtual Camera * | asCamera () |
Convert 'this' into a Camera pointer if Node is a Camera, otherwise return 0. | |
virtual const Camera * | asCamera () const |
convert 'const this' into a const Camera pointer if Node is a Camera, otherwise return 0. | |
virtual Drawable * | asDrawable () |
Convert 'this' into a Drawable pointer if Object is a Drawable, otherwise return 0. | |
virtual const Drawable * | asDrawable () const |
convert 'const this' into a const Drawable pointer if Object is a Drawable, otherwise return 0. | |
virtual UserDataContainer * | asUserDataContainer () |
Convert 'this' into a UserDataContainer pointer if Object is a UserDataContainer, otherwise return 0. | |
virtual const UserDataContainer * | asUserDataContainer () const |
convert 'const this' into a const UserDataContainer pointer if Object is a UserDataContainer, otherwise return 0. | |
virtual ValueObject * | asValueObject () |
Convert 'this' into a ValueObject pointer if Object is a ValueObject, otherwise return 0. | |
virtual const ValueObject * | asValueObject () const |
Convert 'this' into a ValueObject pointer if Object is a ValueObject, otherwise return 0. | |
virtual Image * | asImage () |
Convert 'this' into a Image pointer if Object is a Image, otherwise return 0. | |
virtual const Image * | asImage () const |
Convert 'this' into a Image pointer if Object is a Image, otherwise return 0. | |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
Set whether to use a mutex to ensure ref() and unref() are thread safe. | |
virtual void | setName (const std::string &name) |
Set the name of object using C++ style string. | |
void | setName (const char *name) |
Set the name of object using a C style string. | |
const std::string & | getName () const |
Get the name of object. | |
void | setDataVariance (DataVariance dv) |
Set the data variance of this object. | |
DataVariance | getDataVariance () const |
Get the data variance of this object. | |
virtual void | computeDataVariance () |
Compute the DataVariance based on an assessment of callback etc. | |
void | setUserDataContainer (osg::UserDataContainer *udc) |
set the UserDataContainer object. | |
template<class T> | |
void | setUserDataContainer (const ref_ptr< T > &udc) |
osg::UserDataContainer * | getUserDataContainer () |
get the UserDataContainer attached to this object. | |
const osg::UserDataContainer * | getUserDataContainer () const |
get the const UserDataContainer attached to this object. | |
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. | |
virtual void | setUserData (Referenced *obj) |
Set user data, data must be subclassed from Referenced to allow automatic memory handling. | |
template<class T> | |
void | setUserData (const ref_ptr< T > &ud) |
virtual Referenced * | getUserData () |
Get user data. | |
virtual const Referenced * | getUserData () const |
Get const user data. | |
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. | |
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. | |
virtual void | resizeGLObjectBuffers (unsigned int) |
Resize any per context GLObject buffers to specified size. | |
virtual void | releaseGLObjects (osg::State *=0) const |
If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context. | |
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 () | |
Referenced (bool threadSafeRefUnref) | |
Deprecated, Referenced is now always uses thread safe ref/unref, use default Referenced() constructor instead. | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
Get whether a mutex is used to ensure ref() and unref() are thread safe. | |
OpenThreads::Mutex * | getRefMutex () const |
Get the mutex used to ensure thread safety of ref()/unref(). | |
int | ref () const |
Increment the reference count by one, indicating that this object has another pointer which is referencing it. | |
int | unref () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. | |
int | unref_nodelete () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. | |
int | referenceCount () const |
Return the number of pointers currently referencing this object. | |
ObserverSet * | getObserverSet () const |
Get the ObserverSet if one is attached, otherwise return NULL. | |
ObserverSet * | getOrCreateObserverSet () const |
Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet. | |
void | addObserver (Observer *observer) const |
Add a Observer that is observing this object, notify the Observer when this object gets deleted. | |
void | removeObserver (Observer *observer) const |
Remove Observer that is observing this object. | |
Public Member Functions inherited from osg::DrawableEventCallback | |
DrawableEventCallback () | |
DrawableEventCallback (const DrawableEventCallback &org, const CopyOp ©op) | |
META_Object (osg, DrawableEventCallback) |
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. | |
static void | setDeleteHandler (DeleteHandler *handler) |
Set a DeleteHandler to which deletion of all referenced counted objects will be delegated. | |
static DeleteHandler * | getDeleteHandler () |
Get a DeleteHandler. | |
Protected Member Functions inherited from osgGA::CameraManipulator | |
CameraManipulator () | |
CameraManipulator (const CameraManipulator &mm, const osg::CopyOp ©Op=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 () |
Object destructor. | |
Protected Member Functions inherited from osg::Referenced | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
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 |
KeySwitchMatrixManipulator is a decorator which allows the type of camera manipulator being used to be switched by pressing a key.
E.g. '1' for a TrackballManipulator, '2' for a DriveManipulator, '3' for a FlightManipulator. The manipulators available, and the associated switch keys, can be configured.
typedef std::map<int, NamedManipulator> osgGA::KeySwitchMatrixManipulator::KeyManipMap |
typedef std::pair<std::string, osg::ref_ptr<CameraManipulator> > osgGA::KeySwitchMatrixManipulator::NamedManipulator |
void osgGA::KeySwitchMatrixManipulator::addMatrixManipulator | ( | int | key, |
std::string | name, | ||
CameraManipulator * | cm ) |
Add a camera manipulator with an associated name, and a key to trigger the switch,.
References osgGA::CameraManipulator::CameraManipulator().
void osgGA::KeySwitchMatrixManipulator::addNumberedMatrixManipulator | ( | CameraManipulator * | cm | ) |
Add a camera manipulator with an autogenerated keybinding which is '1' + previous number of camera's registered.
References osgGA::CameraManipulator::CameraManipulator().
|
inlinevirtual |
return the name of the object's class type.
Must be defined by derived classes.
Reimplemented from osgGA::CameraManipulator.
|
virtual |
|
virtual |
finish any active manipulator animations.
Reimplemented from osgGA::CameraManipulator.
|
inline |
Get the current active manipulators.
References osgGA::CameraManipulator::CameraManipulator().
|
inline |
Get the const current active manipulators.
References osgGA::CameraManipulator::CameraManipulator().
|
inlinevirtual |
Get the FusionDistanceMode.
Used by SceneView for setting up stereo convergence.
Reimplemented from osgGA::CameraManipulator.
|
inlinevirtual |
Get the FusionDistanceValue.
Used by SceneView for setting up stereo convergence.
Reimplemented from osgGA::CameraManipulator.
|
inlinevirtual |
get the position of the manipulator as a inverse matrix of the manipulator, typically used as a model view matrix.
Implements osgGA::CameraManipulator.
|
inline |
Get the complete list of manipulators attached to this keyswitch manipulator.
|
inline |
Get the const complete list of manipulators attached to this keyswitch manipulator.
|
inlinevirtual |
get the position of the manipulator as 4x4 Matrix.
Implements osgGA::CameraManipulator.
CameraManipulator * osgGA::KeySwitchMatrixManipulator::getMatrixManipulatorWithIndex | ( | unsigned int | key | ) |
Get manipulator assigned to a specified index.
References osgGA::CameraManipulator::CameraManipulator().
const CameraManipulator * osgGA::KeySwitchMatrixManipulator::getMatrixManipulatorWithIndex | ( | unsigned int | key | ) | const |
Get const manipulator assigned to a specified index.
References osgGA::CameraManipulator::CameraManipulator().
CameraManipulator * osgGA::KeySwitchMatrixManipulator::getMatrixManipulatorWithKey | ( | unsigned int | key | ) |
Get manipulator assigned to a specified key.
References osgGA::CameraManipulator::CameraManipulator().
const CameraManipulator * osgGA::KeySwitchMatrixManipulator::getMatrixManipulatorWithKey | ( | unsigned int | key | ) | const |
Get const manipulator assigned to a specified key.
References osgGA::CameraManipulator::CameraManipulator().
|
inlinevirtual |
Return node if attached.
Reimplemented from osgGA::CameraManipulator.
|
inlinevirtual |
Return const node if attached.
Reimplemented from osgGA::CameraManipulator.
|
inline |
|
virtual |
Get the keyboard and mouse usage of this manipulator.
Reimplemented from osgGA::EventHandler.
|
virtual |
Handle events, return true if handled, false otherwise.
Reimplemented from osgGA::CameraManipulator.
|
virtual |
Move the camera to the default position.
May be ignored by manipulators if home functionality is not appropriate.
Reimplemented from osgGA::CameraManipulator.
|
inlinevirtual |
Start/restart the manipulator.
Reimplemented from osgGA::CameraManipulator.
void osgGA::KeySwitchMatrixManipulator::selectMatrixManipulator | ( | unsigned int | num | ) |
|
virtual |
Set whether the automatic compute of the home position is enabled.
Reimplemented from osgGA::CameraManipulator.
|
inlinevirtual |
set the position of the matrix manipulator using a 4x4 Matrix.
Implements osgGA::CameraManipulator.
|
inlinevirtual |
Set the position of the matrix manipulator using a 4x4 Matrix.
Implements osgGA::CameraManipulator.
|
virtual |
set the coordinate frame which callback tells the manipulator which way is up, east and north.
Reimplemented from osgGA::CameraManipulator.
|
virtual |
Manually set the home position, and set the automatic compute of home position.
Reimplemented from osgGA::CameraManipulator.
|
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.
![]() | Generated at Sun Jul 27 2025 00:00:00 for the OpenSceneGraph by doxygen 1.14.0. |