4 #include <sigc++/sigc++.h>
5 #include "libr2c2/geometry.h"
28 MObject(R2C2::Object *);
36 TrackOrder(R2C2::Track *t, bool r): track(t), rev(r) { }
40 sigc::signal<void, const std::string &> signal_status;
41 sigc::signal<void, bool> signal_done;
45 Msp::Input::Mouse &mouse;
47 std::vector<MObject> objects;
51 R2C2::Vector gpointer;
53 R2C2::Vector move_origin;
55 R2C2::Angle rot_origin;
57 std::set<R2C2::Object *> neighbors;
58 std::vector<R2C2::Track *> extend_tracks;
61 Manipulator(Designer &, Msp::Input::Mouse &, Selection &);
69 void even_slope(bool =false);
73 void button_press(unsigned);
74 void axis_motion(unsigned, float, float);
75 void selection_changed();
76 void update_objects();
77 void update_neighbors();
78 void set_slope(TrackOrder &, float, float);
79 std::vector<R2C2::Track *> create_straight(const R2C2::Vector &, const R2C2::Angle &, float, float);