/* $Id$
-This file is part of the MSP Märklin suite
+This file is part of R²C²
Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
Distributed under the GPL
*/
struct MTrack
{
- Marklin::Track *track;
- Marklin::Point pos;
+ R2C2::Track *track;
+ R2C2::Point pos;
float rot;
- MTrack(Marklin::Track *);
+ MTrack(R2C2::Track *);
};
struct TrackOrder
{
- Marklin::Track *track;
+ R2C2::Track *track;
bool rev;
- TrackOrder(Marklin::Track *t, bool r): track(t), rev(r) { }
+ TrackOrder(R2C2::Track *t, bool r): track(t), rev(r) { }
};
public:
Msp::Graphics::EventSource &event_source;
Selection &selection;
std::vector<MTrack> tracks;
- Marklin::Point center;
+ R2C2::Point center;
- Marklin::Point gpointer;
+ R2C2::Point gpointer;
int pointer_y;
Mode mode;
- Marklin::Point move_origin;
+ R2C2::Point move_origin;
float angle;
float rot_origin;
int elev_origin;
- std::set<Marklin::Track *> neighbors;
- std::vector<Marklin::Track *> extend_tracks;
+ std::set<R2C2::Track *> neighbors;
+ std::vector<R2C2::Track *> extend_tracks;
public:
Manipulator(Designer &, Msp::Graphics::EventSource &, Selection &);
void start_move();
void start_rotate();
void start_elevate();
- void start_extend();
+ bool start_extend();
void duplicate();
void flatten();
void even_slope(bool =false);
void update_tracks();
void update_neighbors();
void set_slope(TrackOrder &, float, float);
- std::vector<Marklin::Track *> create_straight(const Marklin::Point &, float, float, float);
+ std::vector<R2C2::Track *> create_straight(const R2C2::Point &, float, float, float);
};
#endif