]> git.tdb.fi Git - r2c2.git/blob - source/designer/measure.h
Style fixes, including:
[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         Designer &designer;
19         Marklin::Point pointer;
20         Marklin::Point spoint;
21         float sdir;
22         float par_dist;
23         float perp_dist;
24         float adiff;
25         State state;
26
27 public:
28         sigc::signal<void> signal_done;
29         sigc::signal<void> signal_changed;
30
31         Measure(Designer &);
32         float get_parallel_distance() const      { return par_dist; }
33         float get_perpendicular_distance() const { return perp_dist; }
34         float get_angle_difference() const       { return adiff; }
35         void start();
36         void button_press(int, int, float, float, unsigned);
37         void pointer_motion(int, int, float, float);
38         void render();
39 private:
40         void snap_to_tracks(Marklin::Point &, float &);
41 };
42
43 #endif