19#ifndef OSGGA_CAMERA_MANIPULATOR
20#define OSGGA_CAMERA_MANIPULATOR 1
52 virtual const char*
className()
const {
return "StandardManipulator"; }
81 virtual void home(
double );
119 const osg::Vec3d& localUp,
bool disallowFlipOver );
157 void start(
const double startTime );
The 'GA' in osgGA stands for 'GUI Abstraction'; the osgGA namespace provides facilities to help devel...
Definition Callback:21
Definition ApplicationUsage:26
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
Base class for all internal nodes in the scene graph.
Definition Node:72
A quaternion class.
Definition Quat:30
Base class for providing reference counted objects.
Definition Referenced:44
General purpose double triple for use as vertices, vectors and normals.
Definition Vec3d:30
Definition GUIActionAdapter:62
Event class for storing Keyboard, mouse and window events.
Definition GUIEventAdapter:82
double _last_frame_time
The time the last frame started.
Definition StandardManipulator:141
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.
Definition StandardManipulator:52
virtual bool handleMouseRelease(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
double _delta_frame_time
The approximate amount of time it is currently taking to draw a frame.
Definition StandardManipulator:136
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 getTransformation(osg::Vec3d &eye, osg::Quat &rotation) const =0
Gets manipulator's 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.
StandardManipulator(int flags=DEFAULT_SETTINGS)
osg::ref_ptr< const osgGA::GUIEventAdapter > _ga_t0
Definition StandardManipulator:130
virtual void init(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
Start/restart the manipulator.
static int numRelativeFlagsAllocated
Definition StandardManipulator:169
void flushMouseEventStack()
virtual bool handleKeyUp(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
static void rotateYawPitch(osg::Quat &rotation, const double yaw, const double pitch, const osg::Vec3d &localUp=osg::Vec3d(0., 0., 0.))
virtual bool performMovementLeftMouseButton(const double eventTimeDelta, const double dx, const double dy)
virtual void applyAnimationStep(const double currentProgress, const double prevProgress)
virtual bool handleMouseMove(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
bool getVerticalAxisFixed() const
Returns whether manipulator preserves camera's "UP" vector.
Definition StandardManipulator:190
virtual bool handleFrame(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual const osg::Node * getNode() const
Return const node if attached.
virtual bool handle(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
Handle events, return true if handled, false otherwise.
virtual bool performMovement()
virtual void home(double)
Move the camera to the default position.
bool _thrown
Definition StandardManipulator:124
static int allocateRelativeFlag()
virtual void getUsage(osg::ApplicationUsage &usage) const
Get the user interface usage of this event handler, i.e.
virtual bool performAnimationMovement(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool isMouseMoving() const
virtual bool performMouseDeltaMovement(const float dx, const float dy)
virtual bool handleMousePush(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool startAnimationByMousePointerIntersection(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual void setAnimationTime(const double t)
double _modelSize
Definition StandardManipulator:145
bool getRelativeFlag(int index) const
Definition StandardManipulator:178
virtual void setTransformation(const osg::Vec3d &eye, const osg::Quat &rotation)=0
Sets manipulator by eye position and eye orientation.
virtual bool handleMouseDeltaMovement(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool performMovementRightMouseButton(const double eventTimeDelta, const double dx, const double dy)
UserInteractionFlags
Definition StandardManipulator:38
@ COMPUTE_HOME_USING_BBOX
Definition StandardManipulator:40
@ PROCESS_MOUSE_WHEEL
Definition StandardManipulator:41
@ UPDATE_MODEL_SIZE
Definition StandardManipulator:39
@ DEFAULT_SETTINGS
Definition StandardManipulator:43
@ SET_CENTER_ON_WHEEL_FORWARD_MOVEMENT
Definition StandardManipulator:42
virtual bool setCenterByMousePointerIntersection(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
float _mouseCenterX
Definition StandardManipulator:126
int _relativeFlags
Definition StandardManipulator:166
virtual osg::Node * getNode()
Return node if attached.
virtual bool handleMouseWheel(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual void home(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
Move the camera to the default position.
virtual void finishAnimation()
finish any active manipulator animations.
virtual void setVerticalAxisFixed(bool value)
float getThrowScale(const double eventTimeDelta) const
void setRelativeFlag(int index, bool value)
Definition StandardManipulator:183
virtual bool performMovementMiddleMouseButton(const double eventTimeDelta, const double dx, const double dy)
virtual void setNode(osg::Node *)
Attach a node to the manipulator, automatically detaching any previously attached node.
double getAnimationTime() const
virtual bool handleMouseDrag(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
osg::ref_ptr< AnimationData > _animationData
Definition StandardManipulator:159
int _flags
Definition StandardManipulator:163
virtual void centerMousePointer(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
static void fixVerticalAxis(osg::Quat &rotation, const osg::Vec3d &localUp, bool disallowFlipOver)
bool _verticalAxisFixed
Definition StandardManipulator:146
void fixVerticalAxis(osg::Vec3d &eye, osg::Quat &rotation, bool disallowFlipOver)
osg::ref_ptr< const osgGA::GUIEventAdapter > _ga_t1
Definition StandardManipulator:129
virtual bool handleKeyDown(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual void setAllowThrow(bool allowThrow)
float _mouseCenterY
Definition StandardManipulator:126
virtual bool handleResize(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
static void fixVerticalAxis(const osg::Vec3d &forward, const osg::Vec3d &up, osg::Vec3d &newUp, const osg::Vec3d &localUp, bool disallowFlipOver)
virtual void allocAnimationData()
Definition StandardManipulator:160
bool getAllowThrow() const
Returns true if the camera can be thrown, false otherwise. It defaults to true.
Definition StandardManipulator:196
void addMouseEvent(const osgGA::GUIEventAdapter &ea)
osg::ref_ptr< osg::Node > _node
Definition StandardManipulator:144
bool _allowThrow
Definition StandardManipulator:125
Definition StandardManipulator:149
double _animationTime
Definition StandardManipulator:151
bool _isAnimating
Definition StandardManipulator:152
void start(const double startTime)
double _startTime
Definition StandardManipulator:153
double _phase
Definition StandardManipulator:154
#define OSGGA_EXPORT
Definition Export:40