X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fmanipulator.h;h=fa8598db186f7ebb55126777cd4a3cf375902720;hb=02fe62e0026dd25fd3ff4d5172c0ff097b7c68c9;hp=a17ad8d5e13ab0286bfe68badfda43977d843ff5;hpb=1d735b80482317fd930eb47ca255ab9f1f120a7d;p=r2c2.git diff --git a/source/designer/manipulator.h b/source/designer/manipulator.h index a17ad8d..fa8598d 100644 --- a/source/designer/manipulator.h +++ b/source/designer/manipulator.h @@ -1,8 +1,14 @@ +/* $Id$ + +This file is part of the MSP Märklin suite +Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa +Distributed under the GPL +*/ + #ifndef MANIPULATOR_H_ #define MANIPULATOR_H_ #include -#include "3d/track.h" class Designer; class Selection; @@ -35,40 +41,28 @@ private: TrackOrder(Marklin::Track *t, bool r): track(t), rev(r) { } }; - struct TrackWrap - { - Marklin::Point pos; - float rot; - float width; - float height; - }; +public: + sigc::signal signal_status; + sigc::signal signal_done; - Designer &designer; - Selection *selection; +private: + Designer &designer; + Selection &selection; std::vector tracks; Marklin::Point center; - std::list wrap; - Marklin::Point wrap_pos; - float wrap_rot; - Marklin::Point gpointer; - int pointer_y; - Mode mode; + int pointer_y; + Mode mode; Marklin::Point move_origin; - float angle; - float rot_origin; - int elev_origin; + float angle; + float rot_origin; + int elev_origin; std::set neighbors; - sigc::connection selection_changed_conn; public: - sigc::signal signal_status; - sigc::signal signal_done; - - Manipulator(Designer &); + Manipulator(Designer &, Selection &); - void set_selection(Selection *); void start_move(); void start_rotate(); void start_elevate(); @@ -78,10 +72,9 @@ public: 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_tracks(); void update_neighbors(); void set_slope(TrackOrder &, float, float); };