]> git.tdb.fi Git - r2c2.git/blob - source/designer/slopetool.h
Split the Manipulator class into several Tools
[r2c2.git] / source / designer / slopetool.h
1 #ifndef SLOPETOOL_H_
2 #define SLOPETOOL_H_
3
4 #include "tool.h"
5 #include "libr2c2/track.h"
6
7 class SlopeTool: public Tool
8 {
9 private:
10         struct TrackOrder
11         {
12                 R2C2::Track *track;
13                 bool rev;
14
15                 TrackOrder(R2C2::Track *t, bool r): track(t), rev(r) { }
16         };
17
18         std::list<R2C2::Track *> neighbors;
19         std::list<TrackOrder> tracks;
20         float total_length;
21
22 public:
23         SlopeTool(Designer &, Msp::Input::Mouse &, const std::set<R2C2::Object *> &);
24
25         void even_slope(bool =false);
26         void flatten();
27 private:
28         void set_slope(TrackOrder &, float, const R2C2::Angle &);
29 };
30
31 #endif