19 #ifndef OSGGA_ORBIT_MANIPULATOR
20 #define OSGGA_ORBIT_MANIPULATOR 1
22 #include <osgGA/StandardManipulator>
44 virtual void setByInverseMatrix(
const osg::Matrixd& matrix );
53 void setHeading(
double azimuth );
54 double getHeading()
const;
55 void setElevation(
double elevation );
56 double getElevation()
const;
58 virtual void setCenter(
const osg::Vec3d& center );
60 virtual void setRotation(
const osg::Quat& rotation );
62 virtual void setDistance(
double distance );
63 double getDistance()
const;
65 virtual void setTrackballSize(
const double& size );
66 inline double getTrackballSize()
const;
67 virtual void setWheelZoomFactor(
double wheelZoomFactor );
68 inline double getWheelZoomFactor()
const;
70 virtual void setMinimumDistance(
const double& minimumDistance,
bool relativeToModelSize =
false );
71 double getMinimumDistance(
bool *relativeToModelSize =
NULL )
const;
74 virtual float getFusionDistanceValue()
const;
80 virtual bool performMovementLeftMouseButton(
const double eventTimeDelta,
const double dx,
const double dy );
81 virtual bool performMovementMiddleMouseButton(
const double eventTimeDelta,
const double dx,
const double dy );
82 virtual bool performMovementRightMouseButton(
const double eventTimeDelta,
const double dx,
const double dy );
83 virtual bool performMouseDeltaMovement(
const float dx,
const float dy );
84 virtual void applyAnimationStep(
const double currentProgress,
const double prevProgress );
86 virtual void rotateTrackball(
const float px0,
const float py0,
87 const float px1,
const float py1,
const float scale );
88 virtual void rotateWithFixedVertical(
const float dx,
const float dy );
89 virtual void rotateWithFixedVertical(
const float dx,
const float dy,
const osg::Vec3f& up );
90 virtual void panModel(
const float dx,
const float dy,
const float dz = 0.f );
91 virtual void zoomModel(
const float dy,
bool pushForwardIfNeeded =
true );
92 void trackball(
osg::Vec3d& axis,
float& angle,
float p1x,
float p1y,
float p2x,
float p2y );
93 float tb_project_to_sphere(
float r,
float x,
float y );
109 void start(
const osg::Vec3d& movement,
const double startTime );
double getTrackballSize() const
static int _minimumDistanceFlagIndex
double getWheelZoomFactor() const
#define META_Object(library, name)
virtual void allocAnimationData()