]> git.tdb.fi Git - libs/gui.git/blobdiff - source/input/mouse.cpp
Normalize device axis ranges to [-1, 1]
[libs/gui.git] / source / input / mouse.cpp
index 931b204f8a2655805f18509259ffc5c3781587ea..0fbc940f144b23537495cf99825db4b3e09fbc8b 100644 (file)
@@ -12,8 +12,7 @@ namespace Msp {
 namespace Input {
 
 Mouse::Mouse(Graphics::Window &w):
-       window(w),
-       axis_scale(0.01)
+       window(w)
 {
        name="Mouse";
 
@@ -44,6 +43,19 @@ std::string Mouse::get_button_name(unsigned btn) const
        }
 }
 
+std::string Mouse::get_axis_name(unsigned axis) const
+{
+       switch(axis)
+       {
+       case 0:
+               return "X axis";
+       case 1:
+               return "Y axis";
+       default:
+               return format("Axis %d", axis);
+       };
+}
+
 void Mouse::button_press(int, int, unsigned btn, unsigned)
 {
        set_button_state(btn, true, true);
@@ -56,8 +68,8 @@ void Mouse::button_release(int, int, unsigned btn, unsigned)
 
 void Mouse::pointer_motion(int x, int y)
 {
-       set_axis_value(0, x*axis_scale, true);
-       set_axis_value(1, y*axis_scale, true);
+       set_axis_value(0, x*2.0f/window.get_width()-1.0f, true);
+       set_axis_value(1, 1.0f-y*2.0f/window.get_height(), true);
 }
 
 } // namespace Input