33 #ifndef DART_GUI_TRACKBALL_HPP_ 34 #define DART_GUI_TRACKBALL_HPP_ 37 #include <Eigen/Geometry> 47 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
53 Trackball(
const Eigen::Vector2d& _center,
double _radius);
66 void draw(
int _winWidth,
int _winHeight);
69 void setTrackball(
const Eigen::Vector2d& _center,
const double _radius);
72 void setCenter(
const Eigen::Vector2d& _center);
75 void setRadius(
const double _radius);
78 void setQuaternion(
const Eigen::Quaterniond& _q);
81 Eigen::Quaterniond getCurrQuat()
const;
84 Eigen::Matrix3d getRotationMatrix()
const;
87 Eigen::Vector2d getCenter()
const;
90 double getRadius()
const;
94 Eigen::Vector3d mouseOnSphere(
double _mouseX,
double _mouseY)
const;
98 Eigen::Quaterniond quatFromVectors(
99 const Eigen::Vector3d& _from,
const Eigen::Vector3d& _to)
const;
102 Eigen::Vector2d mCenter;
108 Eigen::Vector3d mStartPos;
111 Eigen::Quaterniond mCurrQuat;
117 #endif // DART_GUI_TRACKBALL_HPP_ void updateBall(double _x, double _y)
Update the current rotation to rotate from mStartPos to the projection of (x,y) on trackball...
Definition: Trackball.cpp:62
Definition: Aspect.cpp:40
Definition: Trackball.hpp:43
void startBall(double _x, double _y)
Set the starting position to the project of (x,y) on the trackball.
Definition: Trackball.cpp:57
void draw(int _winWidth, int _winHeight)
Draw the trackball on screen.
Definition: Trackball.cpp:76
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Trackball()
Default constructor.
Definition: Trackball.cpp:41
void applyGLRotation()
Apply the current rotation to openGL env.
Definition: Trackball.cpp:70