+/* $Id$
+
+This file is part of the MSP Märklin suite
+Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
+Distributed under the GPL
+*/
+
#ifndef MEASURE_H_
#define MEASURE_H_
class Measure
{
-public:
- sigc::signal<void> signal_done;
- sigc::signal<void> signal_changed;
-
- Measure(Designer &);
- float get_parallel_distance() const { return par_dist; }
- float get_perpendicular_distance() const { return perp_dist; }
- float get_angle_difference() const { return adiff; }
- void start();
- void button_press(int, int, float, float, unsigned);
- void pointer_motion(int, int, float, float);
- void render();
private:
enum State
{
ACTIVE
};
+public:
+ sigc::signal<void> signal_done;
+ sigc::signal<void> signal_changed;
+
+private:
Designer &designer;
Marklin::Point pointer;
Marklin::Point spoint;
float adiff;
State state;
+public:
+ Measure(Designer &);
+ float get_parallel_distance() const { return par_dist; }
+ float get_perpendicular_distance() const { return perp_dist; }
+ float get_angle_difference() const { return adiff; }
+ void start();
+ void button_press(int, int, float, float, unsigned);
+ void pointer_motion(int, int, float, float);
+ void render();
+private:
void snap_to_tracks(Marklin::Point &, float &);
};