- if(pointer_moved)
- {
- pointer_moved = false;
-
- if(picking)
- {
- Track3D *track = pick_track(pointer_x, window.get_height()-pointer_y-1);
- if(track && &track->get_track()!=picking_track)
- {
- picking_track = &track->get_track();
- if(picking_entry>=0)
- picking_entry = 0;
-
- delete picking_path;
- picking_path = new Path3D(*track);
- if(picking_entry>=0)
- picking_path->set_mask(picking_track->get_type().get_endpoint(picking_entry).paths);
- else
- picking_path->set_mask(picking_track->get_type().get_paths());
- picking_path->set_color(GL::Color(0));
- picking_path->set_layer(1);
- }
- }
- }
-
- if(picking && picking_track && picking_entry>=0)
- {
- GL::PushMatrix push_mat;
-
- float rot = picking_track->get_endpoint_direction(picking_entry);
- Point pos = picking_track->get_endpoint_position(picking_entry);
-
- GL::translate(pos.x, pos.y, pos.z+0.03);
- GL::rotate(rot*180/M_PI+180, 0, 0, 1);
-
- arrow_mesh.draw();
- }