Blender V2.61 - r43446

MyGlutMouseHandler.h

Go to the documentation of this file.
00001 
00028 #ifndef NAN_INCLUDED_MyGlutMouseHandler_h
00029 #define NAN_INCLUDED_MyGlutMouseHandler_h
00030 
00031 #include "common/GlutMouseManager.h"
00032 #include "GHOST_IWindow.h"
00033 
00034 class MyGlutMouseHandler : public GlutMouseHandler
00035 {
00036 
00037 public :
00038  
00039     static 
00040         MyGlutMouseHandler *
00041     New(
00042     ) {
00043         return new MyGlutMouseHandler();
00044     }
00045 
00046         void
00047     ButtonDown(
00048         GHOST_IWindow * window,
00049         GHOST_TButtonMask button_mask,
00050         int x,
00051         int y
00052     ){
00053         if (button_mask == GHOST_kButtonMaskLeft) {
00054             m_moving = true;
00055             m_begin_x = x;
00056             m_begin_y = y;  
00057         }
00058         window->invalidate();
00059     }
00060 
00061         void
00062     ButtonUp(
00063         GHOST_IWindow * window,
00064         GHOST_TButtonMask button_mask,
00065         int x,
00066         int y
00067     ) {
00068         if (button_mask == GHOST_kButtonMaskLeft) {
00069             m_moving = false;
00070         }
00071         window->invalidate();
00072     }
00073 
00074         void
00075     Motion(
00076         GHOST_IWindow * window,
00077         int x,
00078         int y
00079     ){
00080         if (m_moving) {
00081             m_angle_x = m_angle_x + (x - m_begin_x);
00082             m_begin_x = x;
00083 
00084             m_angle_y = m_angle_y + (y - m_begin_y);
00085             m_begin_y = y;
00086         }
00087         window->invalidate();
00088     }
00089 
00090     const 
00091         float
00092     AngleX(
00093     ) const {
00094         return m_angle_x;
00095     }
00096 
00097     const 
00098         float
00099     AngleY(
00100     ) const {
00101         return m_angle_y;
00102     }
00103 
00104     
00105 private :
00106 
00107     MyGlutMouseHandler (
00108     ) :  
00109         m_angle_x(0),
00110         m_angle_y(0),
00111         m_begin_x(0),
00112         m_begin_y(0),
00113         m_moving (false)
00114     {
00115     };
00116         
00117     float m_angle_x;
00118     float m_angle_y;
00119     float m_begin_x;
00120     float m_begin_y;
00121 
00122     bool m_moving;
00123     
00124 };
00125 
00126 #endif
00127