#include <sigc++/sigc++.h>
#include <msp/gl/renderable.h>
+#include "libr2c2/geometry.h"
class Designer;
private:
Designer &designer;
R2C2::Vector pointer;
- R2C2::Vector spoint;
- float sdir;
+ R2C2::Snap ssnap;
float par_dist;
float perp_dist;
- float adiff;
+ R2C2::Angle adiff;
State state;
Msp::GL::Mesh mesh;
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; }
+ const R2C2::Angle &get_angle_difference() const { return adiff; }
void start();
void button_press(float, float, unsigned);
void pointer_motion(float, float);
virtual void render(Msp::GL::Renderer &, const Msp::GL::Tag &) const;
private:
void update_mesh();
- void snap_to_tracks(R2C2::Vector &, float &);
+ void snap_to_tracks(R2C2::Snap &);
};
#endif