- else if(mode==ELEVATE)
- {
- float dz=(y-elev_origin)/1000.;
-
- ostringstream ss;
- ss.precision(3);
- ss<<"Elevation: "<<dz*1000<<"mm ("<<(center.z+dz)*1000<<"mm)";
- signal_status.emit(ss.str());
-
- wrap_pos.z=center.z+dz;
- for(MTrackSeq::iterator i=tracks.begin(); i!=tracks.end(); ++i)
- i->track->set_position(Point(center.x+i->pos.x, center.y+i->pos.y, center.z+i->pos.z+dz));
-
- for(TrackSeq::iterator i=neighbors.begin(); i!=neighbors.end(); ++i)
- (*i)->check_slope();
- }
-}
-
-void Manipulator::render()
-{
- glPushMatrix();
- glTranslatef(wrap_pos.x, wrap_pos.y, wrap_pos.z);
- glRotatef(wrap_rot*180/M_PI, 0, 0, 1);
-
- glLineWidth(2);
- glColor4f(0, 1, 0, 0.5);
- for(list<TrackWrap>::iterator i=wrap.begin(); i!=wrap.end(); ++i)
- {
- glPushMatrix();
- glTranslatef(i->pos.x, i->pos.y, i->pos.z);
- glRotatef(i->rot*180/M_PI, 0, 0, 1);
-
- glBegin(GL_LINE_LOOP);
- glVertex2f(-i->width/2, -i->height/2);
- glVertex2f(i->width/2, -i->height/2);
- glVertex2f(i->width/2, i->height/2);
- glVertex2f(-i->width/2, i->height/2);
- glEnd();
-
- glPopMatrix();
- }
-
- glPopMatrix();
-}
-
-/*** private ***/
-
-void Manipulator::selection_changed()
-{
- if(mode)
- cancel();
-
- tracks.clear();
- if(selection)
- {
- const Selection::TrackSet &stracks=selection->get_tracks();
- tracks.insert(tracks.end(), stracks.begin(), stracks.end());
- }
-
- update_neighbors();
- update_wrap();