X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fmanipulator.h;h=55d2425ad8bfdb98596bd33877da65eaa25e18a8;hb=30df355287abd0bfe1189e616056335505287e9a;hp=8115ab4abd8dd7e8e3b1d6429a249737b2efbf09;hpb=258600f95f62ba4fbe745da4aebdd1a496af0050;p=r2c2.git diff --git a/source/designer/manipulator.h b/source/designer/manipulator.h index 8115ab4..55d2425 100644 --- a/source/designer/manipulator.h +++ b/source/designer/manipulator.h @@ -21,7 +21,8 @@ private: NONE, MOVE, ROTATE, - ELEVATE + ELEVATE, + EXTEND }; struct MTrack @@ -47,6 +48,7 @@ public: private: Designer &designer; + Msp::Graphics::EventSource &event_source; Selection &selection; std::vector tracks; Marklin::Point center; @@ -59,25 +61,28 @@ private: float rot_origin; int elev_origin; std::set neighbors; + std::vector extend_tracks; public: - Manipulator(Designer &, Selection &); + Manipulator(Designer &, Msp::Graphics::EventSource &, Selection &); void start_move(); void start_rotate(); void start_elevate(); + void start_extend(); void duplicate(); void flatten(); void even_slope(bool =false); void connect(); void cancel(); - void button_press(int, int, float, float, unsigned); - void pointer_motion(int, int, float, float); private: + void button_press(int, int, unsigned, unsigned); + void pointer_motion(int, int); void selection_changed(); void update_tracks(); void update_neighbors(); void set_slope(TrackOrder &, float, float); + std::vector create_straight(const Marklin::Point &, float, float, float); }; #endif