OpenSceneGraph
|
OrbitManipulator is base class for camera control based on focal center, distance from the center, and orientation of distance vector to the eye. More...
Classes | |
class | OrbitAnimationData |
Public Member Functions | |
OrbitManipulator (int flags=DEFAULT_SETTINGS) | |
OrbitManipulator (const OrbitManipulator &om, const osg::CopyOp ©Op=osg::CopyOp::SHALLOW_COPY) | |
META_Object (osgGA, OrbitManipulator) | |
virtual void | setByMatrix (const osg::Matrixd &matrix) |
set the position of the matrix manipulator using a 4x4 Matrix. More... | |
virtual void | setByInverseMatrix (const osg::Matrixd &matrix) |
set the position of the matrix manipulator using a 4x4 Matrix. More... | |
virtual osg::Matrixd | getMatrix () const |
get the position of the manipulator as 4x4 Matrix. More... | |
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. More... | |
virtual void | setTransformation (const osg::Vec3d &eye, const osg::Quat &rotation) |
Sets manipulator by eye position and eye orientation. More... | |
virtual void | setTransformation (const osg::Vec3d &eye, const osg::Vec3d ¢er, const osg::Vec3d &up) |
Sets manipulator by eye position, center of rotation, and up vector. More... | |
virtual void | getTransformation (osg::Vec3d &eye, osg::Quat &rotation) const |
Gets manipulator's eye position and eye orientation. More... | |
virtual void | getTransformation (osg::Vec3d &eye, osg::Vec3d ¢er, osg::Vec3d &up) const |
Gets manipulator's focal center, eye position, and up vector. More... | |
void | setHeading (double azimuth) |
double | getHeading () const |
void | setElevation (double elevation) |
double | getElevation () const |
virtual void | setCenter (const osg::Vec3d ¢er) |
const osg::Vec3d & | getCenter () const |
virtual void | setRotation (const osg::Quat &rotation) |
const osg::Quat & | getRotation () const |
virtual void | setDistance (double distance) |
double | getDistance () const |
virtual void | setTrackballSize (const double &size) |
double | getTrackballSize () const |
Get the size of the trackball relative to the model size. More... | |
virtual void | setWheelZoomFactor (double wheelZoomFactor) |
double | getWheelZoomFactor () const |
Get the mouse wheel zoom factor. More... | |
virtual void | setMinimumDistance (const double &minimumDistance, bool relativeToModelSize=false) |
double | getMinimumDistance (bool *relativeToModelSize=NULL) const |
virtual osgUtil::SceneView::FusionDistanceMode | getFusionDistanceMode () const |
Get the FusionDistanceMode. More... | |
virtual float | getFusionDistanceValue () const |
Get the FusionDistanceValue. More... | |
![]() | |
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 | 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... | |
![]() | |
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 | updateCamera (osg::Camera &camera) |
update the camera for the current frame, typically called by the viewer classes. 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... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
NodeCallback (const NodeCallback &nc, const CopyOp ©op) | |
META_Object (osg, NodeCallback) | |
![]() | |
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) |
![]() | |
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 | |
![]() | |
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... | |
![]() | |
EventCallback (const EventCallback &, const CopyOp &) | |
META_Object (osg, EventCallback) | |
Protected Member Functions | |
virtual bool | handleMouseWheel (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us) |
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 void | applyAnimationStep (const double currentProgress, const double prevProgress) |
virtual void | rotateTrackball (const float px0, const float py0, const float px1, const float py1, const float scale) |
virtual void | rotateWithFixedVertical (const float dx, const float dy) |
virtual void | rotateWithFixedVertical (const float dx, const float dy, const osg::Vec3f &up) |
virtual void | panModel (const float dx, const float dy, const float dz=0.f) |
virtual void | zoomModel (const float dy, bool pushForwardIfNeeded=true) |
void | trackball (osg::Vec3d &axis, float &angle, float p1x, float p1y, float p2x, float p2y) |
float | tb_project_to_sphere (float r, float x, float y) |
virtual bool | startAnimationByMousePointerIntersection (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us) |
virtual void | allocAnimationData () |
![]() | |
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 | handleMouseDeltaMovement (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us) |
virtual bool | performMovement () |
virtual bool | performAnimationMovement (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us) |
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) |
bool | getRelativeFlag (int index) const |
void | setRelativeFlag (int index, bool value) |
![]() | |
CameraManipulator (const CameraManipulator &mm, const osg::CopyOp ©Op=osg::CopyOp::SHALLOW_COPY) | |
std::string | getManipulatorName () const |
![]() | |
virtual | ~Object () |
Object destructor. More... | |
![]() | |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Protected Attributes | |
osg::Vec3d | _center |
osg::Quat | _rotation |
double | _distance |
double | _trackballSize |
double | _wheelZoomFactor |
double | _minimumDistance |
![]() | |
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 |
![]() | |
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 |
OpenThreads::Mutex * | _refMutex |
int | _refCount |
void * | _observerSet |
Static Protected Attributes | |
static int | _minimumDistanceFlagIndex |
![]() | |
static int | numRelativeFlagsAllocated |
Additional Inherited Members | |
![]() | |
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 } |
![]() | |
enum | DataVariance { DYNAMIC, STATIC, UNSPECIFIED } |
![]() | |
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... | |
![]() | |
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 () |
OrbitManipulator is base class for camera control based on focal center, distance from the center, and orientation of distance vector to the eye.
This is the base class for trackball style manipulators.
|
virtual |
Get the FusionDistanceMode.
Used by SceneView for setting up stereo convergence.
Reimplemented from osgGA::CameraManipulator.
|
virtual |
Get the FusionDistanceValue.
Used by SceneView for setting up stereo convergence.
Reimplemented from osgGA::CameraManipulator.
|
virtual |
get the position of the manipulator as a inverse matrix of the manipulator, typically used as a model view matrix.
Implements osgGA::CameraManipulator.
Reimplemented in osgGA::NodeTrackerManipulator.
|
virtual |
get the position of the manipulator as 4x4 Matrix.
Implements osgGA::CameraManipulator.
Reimplemented in osgGA::NodeTrackerManipulator.
|
inline |
Get the size of the trackball relative to the model size.
|
virtual |
Gets manipulator's eye position and eye orientation.
Implements osgGA::StandardManipulator.
|
virtual |
Gets manipulator's focal center, eye position, and up vector.
Implements osgGA::StandardManipulator.
|
inline |
Get the mouse wheel zoom factor.
|
virtual |
set the position of the matrix manipulator using a 4x4 Matrix.
Implements osgGA::CameraManipulator.
|
virtual |
set the position of the matrix manipulator using a 4x4 Matrix.
Implements osgGA::CameraManipulator.
Reimplemented in osgGA::NodeTrackerManipulator, and osgGA::TerrainManipulator.
|
virtual |
Sets manipulator by eye position and eye orientation.
Implements osgGA::StandardManipulator.
|
virtual |
Sets manipulator by eye position, center of rotation, and up vector.
Implements osgGA::StandardManipulator.
Reimplemented in osgGA::TerrainManipulator.