X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fdesigner%2Fmeasure.cpp;h=e5e5abb542c3a434a96795df13e8c7f6e1571c01;hb=f8a7788cee0261babfc4c804a58515aad6dfbc3d;hp=6f1d7bc8d5943bf73a00d4d94efe1bed7a8ef4bf;hpb=6c61179fe09af2f5366d50f10aadbf5f83438087;p=r2c2.git diff --git a/source/designer/measure.cpp b/source/designer/measure.cpp index 6f1d7bc..e5e5abb 100644 --- a/source/designer/measure.cpp +++ b/source/designer/measure.cpp @@ -1,10 +1,18 @@ +/* $Id$ + +This file is part of R²C² +Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa +Distributed under the GPL +*/ + #include #include #include "designer.h" #include "3d/layout.h" #include "measure.h" -using namespace Marklin; +using namespace std; +using namespace R2C2; using namespace Msp; Measure::Measure(Designer &d): @@ -14,13 +22,13 @@ Measure::Measure(Designer &d): void Measure::start() { - state=STARTING; + state = STARTING; } -void Measure::snap_to_tracks(Point &pt, float &dir) +void Measure::snap_to_tracks(Vector &pt, float &dir) { - const TrackSeq <racks=designer.get_layout()->get_tracks(); - for(TrackSeq::const_iterator i=ltracks.begin(); i!=ltracks.end(); ++i) + const set <racks = designer.get_layout().get_tracks(); + for(set::const_iterator i=ltracks.begin(); i!=ltracks.end(); ++i) if((*i)->snap(pt, dir)) return; } @@ -32,19 +40,19 @@ void Measure::button_press(int, int, float gx, float gy, unsigned btn) if(btn==1) { - spoint=Point(gx, gy, 0); - sdir=0; + spoint = Vector(gx, gy, 0); + sdir = 0; snap_to_tracks(spoint, sdir); - state=ACTIVE; + state = ACTIVE; } else if(btn==3) { if(state==ACTIVE) - state=STARTING; + state = STARTING; else { - state=NONE; + state = NONE; signal_done.emit(); } } @@ -55,24 +63,24 @@ void Measure::pointer_motion(int, int, float gx, float gy) if(!state) return; - pointer=Point(gx, gy, 0); - float dir=sdir; + pointer = Vector(gx, gy, 0); + float dir = sdir; snap_to_tracks(pointer, dir); if(state!=STARTING) { - Point delta(pointer.x-spoint.x, pointer.y-spoint.y, 0); - float c=cos(sdir); - float s=sin(sdir); + Vector delta(pointer.x-spoint.x, pointer.y-spoint.y, 0); + float c = cos(sdir); + float s = sin(sdir); - par_dist=delta.x*c+delta.y*s; - perp_dist=delta.x*s-delta.y*c; + par_dist = delta.x*c+delta.y*s; + perp_dist = delta.x*s-delta.y*c; - adiff=dir-sdir+M_PI; + adiff = dir-sdir+M_PI; while(adiff<-M_PI) - adiff+=M_PI*2; + adiff += M_PI*2; while(adiff>M_PI) - adiff-=M_PI*2; + adiff -= M_PI*2; signal_changed.emit(); } @@ -91,8 +99,8 @@ void Measure::render() glBegin(GL_QUAD_STRIP); for(unsigned i=0; i<=16; ++i) { - float x=cos(i*M_PI/8)*0.005; - float y=sin(i*M_PI/8)*0.005; + float x = cos(i*M_PI/8)*0.005; + float y = sin(i*M_PI/8)*0.005; glVertex3f(x, y, 0); glVertex3f(x, y, 0.01); } @@ -100,8 +108,8 @@ void Measure::render() if(state==ACTIVE) { - float c=cos(sdir); - float s=sin(sdir); + float c = cos(sdir); + float s = sin(sdir); glBegin(GL_QUAD_STRIP); glVertex3f(0, 0, 0); glVertex3f(0, 0, 0.01);