OSG
3.4.0
|
#include <CameraManipulator.h>
Classes | |
class | CoordinateFrameCallback |
Public Member Functions | |
virtual const char * | className () const |
virtual void | setCoordinateFrameCallback (CoordinateFrameCallback *cb) |
CoordinateFrameCallback * | getCoordinateFrameCallback () |
const CoordinateFrameCallback * | getCoordinateFrameCallback () 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 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 | setNode (osg::Node *) |
virtual const osg::Node * | getNode () const |
virtual osg::Node * | getNode () |
virtual void | setHomePosition (const osg::Vec3d &eye, const osg::Vec3d ¢er, const osg::Vec3d &up, bool autoComputeHomePosition=false) |
virtual void | getHomePosition (osg::Vec3d &eye, osg::Vec3d ¢er, 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 void | home (const GUIEventAdapter &, GUIActionAdapter &) |
virtual void | home (double) |
virtual void | init (const GUIEventAdapter &, GUIActionAdapter &) |
virtual bool | handle (osgGA::Event *event, osg::Object *object, osg::NodeVisitor *nv) |
virtual bool | handle (const GUIEventAdapter &ea, GUIActionAdapter &us) |
![]() | |
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 *) |
![]() | |
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) |
virtual void | operator() (osg::Node *node, osg::NodeVisitor *nv) |
virtual void | event (osg::NodeVisitor *nv, osg::Drawable *drawable) |
virtual void | getUsage (osg::ApplicationUsage &) const |
![]() | |
NodeCallback () | |
NodeCallback (const NodeCallback &nc, const CopyOp ©op) | |
META_Object (osg, NodeCallback) | |
![]() | |
Callback () | |
Callback (const Callback &cb, const CopyOp ©op) | |
META_Object (osg, Callback) | |
bool | traverse (osg::Object *object, osg::Object *data) |
void | setNestedCallback (osg::Callback *cb) |
osg::Callback * | getNestedCallback () |
const osg::Callback * | getNestedCallback () const |
void | addNestedCallback (osg::Callback *nc) |
void | removeNestedCallback (osg::Callback *nc) |
![]() | |
Object () | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
virtual Object * | cloneType () const =0 |
virtual Object * | clone (const CopyOp &) const =0 |
virtual bool | isSameKindAs (const Object *) const |
virtual const char * | libraryName () const =0 |
std::string | getCompoundClassName () const |
virtual Node * | asNode () |
virtual const Node * | asNode () const |
virtual NodeVisitor * | asNodeVisitor () |
virtual const NodeVisitor * | asNodeVisitor () const |
virtual StateAttribute * | asStateAttribute () |
virtual const StateAttribute * | asStateAttribute () const |
virtual Uniform * | asUniform () |
virtual const Uniform * | asUniform () 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) |
osg::UserDataContainer * | getUserDataContainer () |
const osg::UserDataContainer * | getUserDataContainer () const |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
virtual void | setUserData (Referenced *obj) |
virtual Referenced * | getUserData () |
virtual const Referenced * | getUserData () 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 |
![]() | |
Referenced () | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
OpenThreads::Mutex * | getRefMutex () const |
int | ref () const |
int | unref () const |
int | unref_nodelete () const |
int | referenceCount () const |
ObserverSet * | getObserverSet () const |
ObserverSet * | getOrCreateObserverSet () const |
void | addObserver (Observer *observer) const |
void | removeObserver (Observer *observer) const |
![]() | |
EventCallback () | |
EventCallback (const EventCallback &, const CopyOp &) | |
META_Object (osg, EventCallback) | |
Protected Member Functions | |
CameraManipulator () | |
CameraManipulator (const CameraManipulator &mm, const osg::CopyOp ©Op=osg::CopyOp::SHALLOW_COPY) | |
virtual | ~CameraManipulator () |
std::string | getManipulatorName () const |
![]() | |
virtual | ~GUIEventHandler () |
![]() | |
virtual | ~NodeCallback () |
![]() | |
virtual | ~Callback () |
![]() | |
virtual | ~Object () |
![]() | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Protected Attributes | |
unsigned int | _intersectTraversalMask |
bool | _autoComputeHomePosition |
osg::Vec3d | _homeEye |
osg::Vec3d | _homeCenter |
osg::Vec3d | _homeUp |
osg::ref_ptr < CoordinateFrameCallback > | _coordinateFrameCallback |
![]() | |
ref_ptr< Callback > | _nestedCallback |
![]() | |
std::string | _name |
DataVariance | _dataVariance |
osg::UserDataContainer * | _userDataContainer |
![]() | |
OpenThreads::AtomicPtr | _observerSet |
OpenThreads::Atomic | _refCount |
Additional Inherited Members | |
![]() | |
enum | DataVariance { DYNAMIC, STATIC, UNSPECIFIED } |
![]() | |
static OpenThreads::Mutex * | getGlobalReferencedMutex () |
static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
static bool | getThreadSafeReferenceCounting () |
static void | setDeleteHandler (DeleteHandler *handler) |
static DeleteHandler * | getDeleteHandler () |
CameraManipulator is an abstract base class defining the interface, and a certain amount of default functionality, for classes which wish to control OSG cameras in response to GUI events.
Definition at line 39 of file CameraManipulator.h.
|
protected |
|
protected |
|
protectedvirtual |
|
inlinevirtual |
return the name of the object's class type. Must be defined by derived classes.
Implements osg::Object.
Reimplemented in osgGA::UFOManipulator, osgGA::StandardManipulator, osgGA::AnimationPathManipulator, osgGA::KeySwitchMatrixManipulator, osgGA::DriveManipulator, osgGA::SphericalManipulator, and osgGA::CameraViewSwitchManipulator.
Definition at line 47 of file CameraManipulator.h.
|
virtual |
Compute the home position.
|
inlinevirtual |
finish any active manipulator animations.
Reimplemented in osgGA::KeySwitchMatrixManipulator, and osgGA::StandardManipulator.
Definition at line 147 of file CameraManipulator.h.
|
inline |
Get whether the automatic compute of the home position is enabled.
Definition at line 141 of file CameraManipulator.h.
|
inline |
get the coordinate frame.
Definition at line 68 of file CameraManipulator.h.
|
inline |
get the coordinate frame callback which tells the manipulator which way is up, east and north.
Definition at line 62 of file CameraManipulator.h.
|
inline |
get the coordinate frame callback which tells the manipulator which way is up, east and north.
Definition at line 65 of file CameraManipulator.h.
|
inline |
Definition at line 75 of file CameraManipulator.h.
|
inlinevirtual |
Get the FusionDistanceMode. Used by SceneView for setting up stereo convergence.
Reimplemented in osgGA::KeySwitchMatrixManipulator, osgGA::OrbitManipulator, and osgGA::SphericalManipulator.
Definition at line 95 of file CameraManipulator.h.
|
inlinevirtual |
Get the FusionDistanceValue. Used by SceneView for setting up stereo convergence.
Reimplemented in osgGA::KeySwitchMatrixManipulator, osgGA::OrbitManipulator, and osgGA::SphericalManipulator.
Definition at line 98 of file CameraManipulator.h.
|
inlinevirtual |
Get the manually set home position.
Definition at line 130 of file CameraManipulator.h.
|
inline |
Get the mask to use when set up intersection traversal such as used in manipulators that follow terrain or have collision detection.
Definition at line 105 of file CameraManipulator.h.
|
pure virtual |
get the position of the manipulator as a inverse matrix of the manipulator, typically used as a model view matrix.
Implemented in osgGA::KeySwitchMatrixManipulator, osgGA::UFOManipulator, osgGA::NodeTrackerManipulator, osgGA::AnimationPathManipulator, osgGA::DriveManipulator, osgGA::OrbitManipulator, osgGA::FirstPersonManipulator, osgGA::SphericalManipulator, and osgGA::CameraViewSwitchManipulator.
|
protected |
|
pure virtual |
get the position of the manipulator as 4x4 Matrix.
Implemented in osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::UFOManipulator, osgGA::AnimationPathManipulator, osgGA::OrbitManipulator, osgGA::DriveManipulator, osgGA::FirstPersonManipulator, osgGA::SphericalManipulator, and osgGA::CameraViewSwitchManipulator.
|
inlinevirtual |
Return const node if attached.
Reimplemented in osgGA::KeySwitchMatrixManipulator, osgGA::UFOManipulator, osgGA::StandardManipulator, osgGA::SphericalManipulator, osgGA::DriveManipulator, and osgGA::CameraViewSwitchManipulator.
Definition at line 115 of file CameraManipulator.h.
|
inlinevirtual |
Return node if attached.
Reimplemented in osgGA::KeySwitchMatrixManipulator, osgGA::UFOManipulator, osgGA::StandardManipulator, osgGA::SphericalManipulator, osgGA::CameraViewSwitchManipulator, and osgGA::DriveManipulator.
Definition at line 118 of file CameraManipulator.h.
|
inline |
Definition at line 74 of file CameraManipulator.h.
|
inline |
Definition at line 76 of file CameraManipulator.h.
|
inlinevirtual |
Handle event. Override the handle(..) method in your event handlers to respond to events.
Reimplemented from osgGA::GUIEventHandler.
Definition at line 170 of file CameraManipulator.h.
|
virtual |
Handle events, return true if handled, false otherwise.
Reimplemented from osgGA::GUIEventHandler.
Reimplemented in osgGA::KeySwitchMatrixManipulator, osgGA::UFOManipulator, osgGA::AnimationPathManipulator, osgGA::StandardManipulator, osgGA::SphericalManipulator, osgGA::DriveManipulator, osgGA::CameraViewSwitchManipulator, and osgGA::MultiTouchTrackballManipulator.
|
inlinevirtual |
Move the camera to the default position. May be ignored by manipulators if home functionality is not appropriate.
Reimplemented in osgGA::KeySwitchMatrixManipulator, osgGA::UFOManipulator, osgGA::AnimationPathManipulator, osgGA::StandardManipulator, osgGA::SphericalManipulator, osgGA::FirstPersonManipulator, osgGA::DriveManipulator, and osgGA::FlightManipulator.
Definition at line 153 of file CameraManipulator.h.
|
inlinevirtual |
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 in osgGA::UFOManipulator, osgGA::AnimationPathManipulator, osgGA::StandardManipulator, osgGA::SphericalManipulator, and osgGA::FirstPersonManipulator.
Definition at line 161 of file CameraManipulator.h.
|
inlinevirtual |
Start/restart the manipulator. FIXME: what does this actually mean? Provide examples.
Reimplemented in osgGA::KeySwitchMatrixManipulator, osgGA::UFOManipulator, osgGA::AnimationPathManipulator, osgGA::StandardManipulator, osgGA::SphericalManipulator, osgGA::FirstPersonManipulator, osgGA::DriveManipulator, osgGA::CameraViewSwitchManipulator, and osgGA::FlightManipulator.
Definition at line 167 of file CameraManipulator.h.
|
inlinevirtual |
Set whether the automatic compute of the home position is enabled.
Reimplemented in osgGA::KeySwitchMatrixManipulator.
Definition at line 138 of file CameraManipulator.h.
|
pure virtual |
set the position of the matrix manipulator using a 4x4 Matrix.
Implemented in osgGA::KeySwitchMatrixManipulator, osgGA::UFOManipulator, osgGA::AnimationPathManipulator, osgGA::OrbitManipulator, osgGA::FirstPersonManipulator, osgGA::DriveManipulator, osgGA::SphericalManipulator, and osgGA::CameraViewSwitchManipulator.
|
pure virtual |
set the position of the matrix manipulator using a 4x4 Matrix.
Implemented in osgGA::KeySwitchMatrixManipulator, osgGA::NodeTrackerManipulator, osgGA::UFOManipulator, osgGA::AnimationPathManipulator, osgGA::TerrainManipulator, osgGA::OrbitManipulator, osgGA::FirstPersonManipulator, osgGA::DriveManipulator, osgGA::SphericalManipulator, and osgGA::CameraViewSwitchManipulator.
|
inlinevirtual |
set the coordinate frame which callback tells the manipulator which way is up, east and north.
Reimplemented in osgGA::KeySwitchMatrixManipulator.
Definition at line 59 of file CameraManipulator.h.
|
inlinevirtual |
Manually set the home position, and set the automatic compute of home position.
Reimplemented in osgGA::KeySwitchMatrixManipulator.
Definition at line 121 of file CameraManipulator.h.
|
inline |
Set the mask to use when set up intersection traversal such as used in manipulators that follow terrain or have collision detection. The intersection traversal mask is useful for controlling what parts of the scene graph should be used for intersection purposes.
Definition at line 102 of file CameraManipulator.h.
|
inlinevirtual |
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 in osgGA::KeySwitchMatrixManipulator, osgGA::UFOManipulator, osgGA::NodeTrackerManipulator, osgGA::StandardManipulator, osgGA::SphericalManipulator, osgGA::DriveManipulator, osgGA::TerrainManipulator, and osgGA::CameraViewSwitchManipulator.
Definition at line 112 of file CameraManipulator.h.
|
inlinevirtual |
update the camera for the current frame, typically called by the viewer classes. Default implementation simply set the camera view matrix.
Definition at line 92 of file CameraManipulator.h.
|
protected |
Definition at line 186 of file CameraManipulator.h.
|
protected |
Definition at line 192 of file CameraManipulator.h.
|
protected |
Definition at line 189 of file CameraManipulator.h.
|
protected |
Definition at line 188 of file CameraManipulator.h.
|
protected |
Definition at line 190 of file CameraManipulator.h.
|
protected |
Definition at line 184 of file CameraManipulator.h.