]> git.tdb.fi Git - r2c2.git/blob - source/designer/measure.h
Strip Id tags and copyright notices from files
[r2c2.git] / source / designer / measure.h
1 #ifndef MEASURE_H_
2 #define MEASURE_H_
3
4 #include <sigc++/sigc++.h>
5
6 class Designer;
7
8 class Measure
9 {
10 private:
11         enum State
12         {
13                 NONE,
14                 STARTING,
15                 ACTIVE
16         };
17
18 public:
19         sigc::signal<void> signal_done;
20         sigc::signal<void> signal_changed;
21
22 private:
23         Designer &designer;
24         R2C2::Vector pointer;
25         R2C2::Vector spoint;
26         float sdir;
27         float par_dist;
28         float perp_dist;
29         float adiff;
30         State state;
31
32 public:
33         Measure(Designer &);
34         float get_parallel_distance() const { return par_dist; }
35         float get_perpendicular_distance() const { return perp_dist; }
36         float get_angle_difference() const { return adiff; }
37         void start();
38         void button_press(int, int, float, float, unsigned);
39         void pointer_motion(int, int, float, float);
40         void render();
41 private:
42         void snap_to_tracks(R2C2::Vector &, float &);
43 };
44
45 #endif