X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fmeasure.h;h=c5696984fc32aba12b20ca37cfae8103efddff65;hb=1ab448a3031cc47327ceabf612ad4a0789aaf9af;hp=69442d823984fdcbfe7ee3e21e9ce91a1043cd62;hpb=d15ac13f2e170f155b4bbd124df48400c339b644;p=r2c2.git diff --git a/source/designer/measure.h b/source/designer/measure.h index 69442d8..c569698 100644 --- a/source/designer/measure.h +++ b/source/designer/measure.h @@ -2,10 +2,12 @@ #define MEASURE_H_ #include +#include +#include "libr2c2/geometry.h" class Designer; -class Measure +class Measure: public Msp::GL::Renderable { private: enum State @@ -22,24 +24,25 @@ public: 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; 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; } + const R2C2::Angle &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(); + void button_press(float, float, unsigned); + void pointer_motion(float, float); + virtual void render(Msp::GL::Renderer &, const Msp::GL::Tag &) const; private: - void snap_to_tracks(R2C2::Vector &, float &); + void update_mesh(); + void snap_to_tracks(R2C2::Snap &); }; #endif