|
OpenSceneGraph
3.0.1
|
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 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. | |
| virtual void | setTransformation (const osg::Vec3d &eye, const osg::Quat &rotation)=0 |
| Sets manipulator by eye position and eye orientation. | |
| 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. | |
| virtual void | getTransformation (osg::Vec3d &eye, osg::Quat &rotation) const =0 |
| Gets manipulator's eye position and eye orientation. | |
| virtual void | getTransformation (osg::Vec3d &eye, osg::Vec3d ¢er, osg::Vec3d &up) const =0 |
| Gets manipulator's focal center, eye position, and up vector. | |
| virtual void | setNode (osg::Node *) |
| 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 | 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) |
| Move the camera to the default position. | |
| virtual void | home (double) |
| Move the camera to the default position. | |
| virtual void | init (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us) |
| Start/restart the manipulator. | |
| virtual bool | handle (const osgGA::GUIEventAdapter &ea, osgGA::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. | |
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) |
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. | |
| double | _last_frame_time |
| The time the last frame started. | |
| osg::ref_ptr< osg::Node > | _node |
| double | _modelSize |
| bool | _verticalAxisFixed |
| osg::ref_ptr< AnimationData > | _animationData |
| int | _flags |
| int | _relativeFlags |
Static Protected Attributes | |
| static int | numRelativeFlagsAllocated |
StandardManipulator class provides basic functionality for user controlled manipulation.
| osgGA::StandardManipulator::StandardManipulator | ( | int | flags = DEFAULT_SETTINGS | ) |
| osgGA::StandardManipulator::StandardManipulator | ( | const StandardManipulator & | m, |
| const osg::CopyOp & | copyOp = osg::CopyOp::SHALLOW_COPY |
||
| ) |
| void osgGA::StandardManipulator::addMouseEvent | ( | const osgGA::GUIEventAdapter & | ea | ) | [protected] |
| virtual void osgGA::StandardManipulator::allocAnimationData | ( | ) | [inline, protected, virtual] |
Reimplemented in osgGA::OrbitManipulator, and osgGA::FirstPersonManipulator.
| static int osgGA::StandardManipulator::allocateRelativeFlag | ( | ) | [static, protected] |
| virtual void osgGA::StandardManipulator::applyAnimationStep | ( | const double | currentProgress, |
| const double | prevProgress | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::OrbitManipulator, and osgGA::FirstPersonManipulator.
| virtual void osgGA::StandardManipulator::centerMousePointer | ( | const osgGA::GUIEventAdapter & | ea, |
| osgGA::GUIActionAdapter & | us | ||
| ) | [protected, virtual] |
| virtual const char* osgGA::StandardManipulator::className | ( | ) | const [inline, virtual] |
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 | ||
| ) | [static, protected] |
| 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 | ||
| ) | [static, protected] |
| 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 [inline, protected] |
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 | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::FlightManipulator.
| virtual bool osgGA::StandardManipulator::handleKeyDown | ( | const osgGA::GUIEventAdapter & | ea, |
| osgGA::GUIActionAdapter & | us | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::FlightManipulator.
| virtual bool osgGA::StandardManipulator::handleKeyUp | ( | const osgGA::GUIEventAdapter & | ea, |
| osgGA::GUIActionAdapter & | us | ||
| ) | [protected, virtual] |
| virtual bool osgGA::StandardManipulator::handleMouseDeltaMovement | ( | const osgGA::GUIEventAdapter & | ea, |
| osgGA::GUIActionAdapter & | us | ||
| ) | [protected, virtual] |
| virtual bool osgGA::StandardManipulator::handleMouseDrag | ( | const osgGA::GUIEventAdapter & | ea, |
| osgGA::GUIActionAdapter & | us | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::FlightManipulator.
| virtual bool osgGA::StandardManipulator::handleMouseMove | ( | const osgGA::GUIEventAdapter & | ea, |
| osgGA::GUIActionAdapter & | us | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::FlightManipulator.
| virtual bool osgGA::StandardManipulator::handleMousePush | ( | const osgGA::GUIEventAdapter & | ea, |
| osgGA::GUIActionAdapter & | us | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::FlightManipulator.
| virtual bool osgGA::StandardManipulator::handleMouseRelease | ( | const osgGA::GUIEventAdapter & | ea, |
| osgGA::GUIActionAdapter & | us | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::FlightManipulator.
| virtual bool osgGA::StandardManipulator::handleMouseWheel | ( | const osgGA::GUIEventAdapter & | ea, |
| osgGA::GUIActionAdapter & | us | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::OrbitManipulator, and osgGA::FirstPersonManipulator.
| virtual bool osgGA::StandardManipulator::handleResize | ( | const osgGA::GUIEventAdapter & | ea, |
| osgGA::GUIActionAdapter & | us | ||
| ) | [protected, virtual] |
| 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 [protected, virtual] |
| virtual bool osgGA::StandardManipulator::performAnimationMovement | ( | const osgGA::GUIEventAdapter & | ea, |
| osgGA::GUIActionAdapter & | us | ||
| ) | [protected, virtual] |
| virtual bool osgGA::StandardManipulator::performMouseDeltaMovement | ( | const float | dx, |
| const float | dy | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::OrbitManipulator, and osgGA::FirstPersonManipulator.
| virtual bool osgGA::StandardManipulator::performMovement | ( | ) | [protected, virtual] |
Reimplemented in osgGA::FlightManipulator.
| virtual bool osgGA::StandardManipulator::performMovementLeftMouseButton | ( | const double | eventTimeDelta, |
| const double | dx, | ||
| const double | dy | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::NodeTrackerManipulator, osgGA::OrbitManipulator, osgGA::FirstPersonManipulator, and osgGA::FlightManipulator.
| virtual bool osgGA::StandardManipulator::performMovementMiddleMouseButton | ( | const double | eventTimeDelta, |
| const double | dx, | ||
| const double | dy | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::NodeTrackerManipulator, osgGA::OrbitManipulator, osgGA::FlightManipulator, and osgGA::TerrainManipulator.
| virtual bool osgGA::StandardManipulator::performMovementRightMouseButton | ( | const double | eventTimeDelta, |
| const double | dx, | ||
| const double | dy | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::NodeTrackerManipulator, osgGA::OrbitManipulator, osgGA::FlightManipulator, and osgGA::TerrainManipulator.
| static void osgGA::StandardManipulator::rotateYawPitch | ( | osg::Quat & | rotation, |
| const double | yaw, | ||
| const double | pitch, | ||
| const osg::Vec3d & | localUp = osg::Vec3d(0., 0., 0.) |
||
| ) | [static, protected] |
| 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 | ||
| ) | [protected, virtual] |
| 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 | ||
| ) | [inline, protected] |
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 | ||
| ) | [protected, virtual] |
Reimplemented in osgGA::OrbitManipulator, and osgGA::FirstPersonManipulator.
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 [static, protected] |
| Generated at Thu Sep 27 2012 17:03:16 for the OpenSceneGraph by doxygen 1.7.6.1. |