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()
{
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)
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();
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);
}