From Jan Pecvia, improvements to manipulators and added new manipulator to osgviewer
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2010 Robert Osfield
|
||||
*
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
@@ -11,7 +11,7 @@
|
||||
* OpenSceneGraph Public License for more details.
|
||||
*
|
||||
* FirstPersonManipulator code Copyright (C) 2010 PCJohn (Jan Peciva)
|
||||
* while some pieces of code were reused from OSG.
|
||||
* while some pieces of code were taken from OSG.
|
||||
* Thanks to company Cadwork (www.cadwork.ch) and
|
||||
* Brno University of Technology (www.fit.vutbr.cz) for open-sourcing this work.
|
||||
*/
|
||||
@@ -68,7 +68,7 @@ class OSGGA_EXPORT FirstPersonManipulator : public StandardManipulator
|
||||
|
||||
virtual bool handleMouseWheel( const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& us );
|
||||
|
||||
virtual bool performMovementLeftMouseButton( const double dt, const double dx, const double dy );
|
||||
virtual bool performMovementLeftMouseButton( 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 bool startAnimationByMousePointerIntersection( const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& us );
|
||||
|
||||
@@ -61,9 +61,9 @@ class OSGGA_EXPORT FlightManipulator : public FirstPersonManipulator
|
||||
virtual bool flightHandleEvent( const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& us );
|
||||
|
||||
virtual bool performMovement();
|
||||
virtual bool performMovementLeftMouseButton( const double dt, const double dx, const double dy );
|
||||
virtual bool performMovementMiddleMouseButton( const double dt, const double dx, const double dy );
|
||||
virtual bool performMovementRightMouseButton( const double dt, const double dx, const double dy );
|
||||
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 );
|
||||
|
||||
YawControlMode _yawMode;
|
||||
|
||||
|
||||
@@ -86,9 +86,9 @@ class OSGGA_EXPORT NodeTrackerManipulator : public OrbitManipulator
|
||||
|
||||
protected:
|
||||
|
||||
virtual bool performMovementLeftMouseButton(const double dt, const double dx, const double dy);
|
||||
virtual bool performMovementMiddleMouseButton(const double dt, const double dx, const double dy);
|
||||
virtual bool performMovementRightMouseButton(const double dt, const double dx, const double dy);
|
||||
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);
|
||||
|
||||
osg::NodePath getNodePath() const;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2010 Robert Osfield
|
||||
*
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
@@ -9,6 +9,11 @@
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* OpenSceneGraph Public License for more details.
|
||||
*
|
||||
* OrbitManipulator code Copyright (C) 2010 PCJohn (Jan Peciva)
|
||||
* while some pieces of code were taken from OSG.
|
||||
* Thanks to company Cadwork (www.cadwork.ch) and
|
||||
* Brno University of Technology (www.fit.vutbr.cz) for open-sourcing this work.
|
||||
*/
|
||||
|
||||
#ifndef OSGGA_ORBIT_MANIPULATOR
|
||||
@@ -31,7 +36,7 @@ class OSGGA_EXPORT OrbitManipulator : public StandardManipulator
|
||||
|
||||
OrbitManipulator( int flags = DEFAULT_SETTINGS );
|
||||
OrbitManipulator( const OrbitManipulator& om,
|
||||
const osg::CopyOp& copyOp = osg::CopyOp::SHALLOW_COPY );
|
||||
const osg::CopyOp& copyOp = osg::CopyOp::SHALLOW_COPY );
|
||||
|
||||
META_Object( osgGA, OrbitManipulator );
|
||||
|
||||
@@ -67,13 +72,14 @@ class OSGGA_EXPORT OrbitManipulator : public StandardManipulator
|
||||
|
||||
virtual bool handleMouseWheel( const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& us );
|
||||
|
||||
virtual bool performMovementLeftMouseButton( const double dt, const double dx, const double dy );
|
||||
virtual bool performMovementMiddleMouseButton( const double dt, const double dx, const double dy );
|
||||
virtual bool performMovementRightMouseButton( const double dt, const double dx, const double dy );
|
||||
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 );
|
||||
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 );
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2010 Robert Osfield
|
||||
*
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
@@ -11,7 +11,7 @@
|
||||
* OpenSceneGraph Public License for more details.
|
||||
*
|
||||
* StandardManipulator code Copyright (C) 2010 PCJohn (Jan Peciva)
|
||||
* while some pieces of code were reused from OSG.
|
||||
* while some pieces of code were taken from OSG.
|
||||
* Thanks to company Cadwork (www.cadwork.ch) and
|
||||
* Brno University of Technology (www.fit.vutbr.cz) for open-sourcing this work.
|
||||
*/
|
||||
@@ -89,9 +89,9 @@ class OSGGA_EXPORT StandardManipulator : public MatrixManipulator
|
||||
virtual bool handleMouseDeltaMovement( const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& us );
|
||||
|
||||
virtual bool performMovement();
|
||||
virtual bool performMovementLeftMouseButton( const double dt, const double dx, const double dy );
|
||||
virtual bool performMovementMiddleMouseButton( const double dt, const double dx, const double dy );
|
||||
virtual bool performMovementRightMouseButton( const double dt, const double dx, const double dy );
|
||||
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 );
|
||||
@@ -99,6 +99,7 @@ class OSGGA_EXPORT StandardManipulator : public MatrixManipulator
|
||||
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 );
|
||||
|
||||
static void rotateYawPitch( osg::Quat& rotation, const double yaw, const double pitch,
|
||||
@@ -106,7 +107,7 @@ class OSGGA_EXPORT StandardManipulator : public MatrixManipulator
|
||||
static void fixVerticalAxis( osg::Quat& rotation, const osg::Vec3d& localUp, bool disallowFlipOver );
|
||||
void fixVerticalAxis( osg::Vec3d& eye, osg::Quat& rotation, bool disallowFlipOver );
|
||||
static void fixVerticalAxis( const osg::Vec3d& forward, const osg::Vec3d& up, osg::Vec3d& newUp,
|
||||
const osg::Vec3d& localUp, bool disallowFlipOver );
|
||||
const osg::Vec3d& localUp, bool disallowFlipOver );
|
||||
virtual bool setCenterByMousePointerIntersection( const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& us );
|
||||
virtual bool startAnimationByMousePointerIntersection( const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& us );
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2010 Robert Osfield
|
||||
*
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
@@ -49,8 +49,8 @@ public:
|
||||
|
||||
protected:
|
||||
|
||||
virtual bool performMovementMiddleMouseButton( const double dt, const double dx, const double dy );
|
||||
virtual bool performMovementRightMouseButton( const double dt, 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 );
|
||||
|
||||
bool intersect( const osg::Vec3d& start, const osg::Vec3d& end, osg::Vec3d& intersection ) const;
|
||||
void clampOrientation();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2010 Robert Osfield
|
||||
*
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
@@ -28,7 +28,7 @@ class OSGGA_EXPORT TrackballManipulator : public OrbitManipulator
|
||||
|
||||
TrackballManipulator( int flags = DEFAULT_SETTINGS );
|
||||
TrackballManipulator( const TrackballManipulator& tm,
|
||||
const osg::CopyOp& copyOp = osg::CopyOp::SHALLOW_COPY );
|
||||
const osg::CopyOp& copyOp = osg::CopyOp::SHALLOW_COPY );
|
||||
|
||||
META_Object( osgGA, TrackballManipulator );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user