19#ifndef OSGGA_CAMERA_MANIPULATOR
20#define OSGGA_CAMERA_MANIPULATOR 1
39 UPDATE_MODEL_SIZE = 0x01,
40 COMPUTE_HOME_USING_BBOX = 0x02,
41 PROCESS_MOUSE_WHEEL = 0x04,
42 SET_CENTER_ON_WHEEL_FORWARD_MOVEMENT = 0x08,
43 DEFAULT_SETTINGS = UPDATE_MODEL_SIZE | PROCESS_MOUSE_WHEEL
52 virtual const char*
className()
const {
return "StandardManipulator"; }
71 inline bool getVerticalAxisFixed()
const;
72 inline bool getAllowThrow()
const;
81 virtual void home(
double );
119 const osg::Vec3d& localUp,
bool disallowFlipOver );
157 void start(
const double startTime );
167 inline bool getRelativeFlag(
int index )
const;
168 inline void setRelativeFlag(
int index,
bool value );
Definition CameraManipulator:40
Definition GUIActionAdapter:62
Definition GUIEventAdapter:82
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
Definition StandardManipulator:31
double _last_frame_time
Definition StandardManipulator:141
StandardManipulator(const StandardManipulator &m, const osg::CopyOp ©Op=osg::CopyOp::SHALLOW_COPY)
virtual const char * className() const
Definition StandardManipulator:52
virtual bool handleMouseRelease(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
double _delta_frame_time
Definition StandardManipulator:136
virtual void getTransformation(osg::Vec3d &eye, osg::Vec3d ¢er, osg::Vec3d &up) const =0
virtual void getTransformation(osg::Vec3d &eye, osg::Quat &rotation) const =0
virtual void setTransformation(const osg::Vec3d &eye, const osg::Vec3d ¢er, const osg::Vec3d &up)=0
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)
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
virtual bool handle(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual bool performMovement()
virtual void home(double)
bool _thrown
Definition StandardManipulator:124
static int allocateRelativeFlag()
virtual void getUsage(osg::ApplicationUsage &usage) const
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
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
virtual bool setCenterByMousePointerIntersection(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
float _mouseCenterX
Definition StandardManipulator:126
int _relativeFlags
Definition StandardManipulator:166
virtual osg::Node * getNode()
virtual bool handleMouseWheel(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual void home(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &us)
virtual void finishAnimation()
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 *)
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)
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 ApplicationUsage:26
@ SHALLOW_COPY
Definition CopyOp:47
#define OSGGA_EXPORT
Definition osgGA/Export:40