]> git.tdb.fi Git - r2c2.git/blobdiff - source/designer/designer.cpp
Make use of the mspmath library
[r2c2.git] / source / designer / designer.cpp
index edbec387d12cc6c7a0a161a5ba2814b862cb1a79..6d2fd41eca30c17451b1babc510b13796f064e96 100644 (file)
@@ -332,7 +332,7 @@ Vector Designer::map_pointer_to_ground(const Vector &p)
        GL::Vector4 vec = main_view->get_camera().unproject(GL::Vector4(p.x, p.y, 0, 0));
        const GL::Vector3 &pos = main_view->get_camera().get_position();
 
-       return Vector(pos.x-vec.x*pos.z/vec.z, pos.y-vec.y*pos.z/vec.z);
+       return pos-GL::Vector3(vec.x, vec.y, vec.z)*(pos.z/vec.z);
 }
 
 void Designer::tick()
@@ -450,7 +450,7 @@ void Designer::button_press(unsigned btn)
 {
        bool shift = keyboard.get_button_state(Input::KEY_SHIFT_L) || keyboard.get_button_state(Input::KEY_SHIFT_R);
 
-       Vector pointer(mouse.get_axis_value(0), mouse.get_axis_value(1));
+       Vector pointer(mouse.get_axis_value(0), mouse.get_axis_value(1), 0);
        Vector ground = map_pointer_to_ground(pointer);
 
        if(mode==CATALOGUE)
@@ -491,7 +491,7 @@ void Designer::button_press(unsigned btn)
 
 void Designer::axis_motion(unsigned, float, float)
 {
-       Vector pointer(mouse.get_axis_value(0), mouse.get_axis_value(1));
+       Vector pointer(mouse.get_axis_value(0), mouse.get_axis_value(1), 0);
        float wx = pointer.x*window.get_width();
        float wy = pointer.y*window.get_height();
 
@@ -587,8 +587,8 @@ void Designer::measure_changed()
        float pard = measure.get_parallel_distance()*1000;
        float perpd = measure.get_perpendicular_distance()*1000;
        float d = sqrt(pard*pard+perpd*perpd);
-       float adiff = measure.get_angle_difference()*180/M_PI;
-       string info = format("Par %.1fmm - Perp %.1fmm - Total %.1fmm - Angle %.1f°", pard, perpd, d, adiff);
+       const Angle &adiff = measure.get_angle_difference();
+       string info = format("Par %.1fmm - Perp %.1fmm - Total %.1fmm - Angle %.1f°", pard, perpd, d, adiff.degrees());
        lbl_status->set_text(info);
 }