00001 00002 #ifndef __TRANSFORMERARCBALL_H 00003 #define __TRANSFORMERARCBALL_H 00004 00005 #include "Vector.h" 00006 #include "Matrix.h" 00007 #include "Quaternion.h" 00008 00009 #include "Transformer.h" 00010 00023 class TransformerArcBall: public Transformer { 00024 private: 00032 float m_centerX, m_centerY; 00033 00041 float m_radius; 00042 00047 Vector m_rotationVector; 00048 00049 private: 00059 float sphereZ(float x, float y); 00060 00061 public: 00063 TransformerArcBall(int width, int height); 00064 00075 void reshape(int width, int height); 00076 00083 void start(float x, float y); 00084 00106 const Matrix end(float x, float y); 00107 }; 00108 00109 #endif // __TRANSFORMERARCBALL_H