X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fmanipulator.h;h=a17ad8d5e13ab0286bfe68badfda43977d843ff5;hb=bc955b09faf8365a72d07bb5ee1253c9b958c897;hp=3a8882e8f97f686405651774aa478c7b1289a237;hpb=6c61179fe09af2f5366d50f10aadbf5f83438087;p=r2c2.git diff --git a/source/designer/manipulator.h b/source/designer/manipulator.h index 3a8882e..a17ad8d 100644 --- a/source/designer/manipulator.h +++ b/source/designer/manipulator.h @@ -9,22 +9,6 @@ class Selection; class Manipulator { -public: - sigc::signal signal_status; - sigc::signal signal_done; - - Manipulator(Designer &); - void set_selection(Selection *); - void start_move(); - void start_rotate(); - void start_elevate(); - void duplicate(); - void flatten(); - void even_slope(bool =false); - void cancel(); - void button_press(int, int, float, float, unsigned); - void pointer_motion(int, int, float, float); - void render(); private: enum Mode { @@ -42,7 +26,6 @@ private: MTrack(Marklin::Track *); }; - typedef std::list MTrackSeq; struct TrackOrder { @@ -51,7 +34,6 @@ private: TrackOrder(Marklin::Track *t, bool r): track(t), rev(r) { } }; - typedef std::list TrackOrderSeq; struct TrackWrap { @@ -63,7 +45,7 @@ private: Designer &designer; Selection *selection; - MTrackSeq tracks; + std::vector tracks; Marklin::Point center; std::list wrap; @@ -77,9 +59,27 @@ private: float angle; float rot_origin; int elev_origin; - Marklin::TrackSeq neighbors; + std::set neighbors; sigc::connection selection_changed_conn; +public: + sigc::signal signal_status; + sigc::signal signal_done; + + Manipulator(Designer &); + + void set_selection(Selection *); + void start_move(); + void start_rotate(); + void start_elevate(); + void duplicate(); + void flatten(); + void even_slope(bool =false); + void cancel(); + void button_press(int, int, float, float, unsigned); + void pointer_motion(int, int, float, float); + void render(); +private: void selection_changed(); void update_wrap(); void update_neighbors();