]> git.tdb.fi Git - r2c2.git/blob - source/designer/extendtool.h
Don't save an allocated but pending block
[r2c2.git] / source / designer / extendtool.h
1 #ifndef EXTENDTOOL_H_
2 #define EXTENDTOOL_H_
3
4 #include <map>
5 #include <set>
6 #include <vector>
7 #include "libr2c2/object.h"
8 #include "libr2c2/trackiter.h"
9 #include "tool.h"
10
11 class ExtendTool: public Tool
12 {
13 private:
14         std::map<float, const R2C2::TrackType *> types_by_length;
15         unsigned max_preference;
16         std::vector<R2C2::TrackIter> unlinked_endpoints;
17         std::vector<R2C2::Track *> extend_tracks;
18
19 public:
20         ExtendTool(Designer &, Msp::Input::Keyboard &, Msp::Input::Mouse &, const std::set<R2C2::Object *> &);
21         virtual ~ExtendTool();
22
23         void connect();
24
25 private:
26         virtual void pointer_motion();
27         virtual void finish();
28
29         std::vector<R2C2::Track *> create_straight(const R2C2::Vector &, const R2C2::Angle &, float, float);
30
31 public:
32         virtual void update_selection(Selection &) const;
33 };
34
35 #endif