- vector<GL::SelectRecord> select_buf;
- GL::select_buffer(select_buf);
- GL::render_mode(GL::SELECT);
-
- glPushMatrix();
- glLoadIdentity();
-
- double clip[4];
- clip[0]=1;
- clip[1]=0;
- clip[2]=x-size;
- clip[3]=0;
- glClipPlane(GL_CLIP_PLANE0, clip);
- glEnable(GL_CLIP_PLANE0);
-
- clip[0]=-1;
- clip[2]=-(x+size);
- glClipPlane(GL_CLIP_PLANE1, clip);
- glEnable(GL_CLIP_PLANE1);
-
- clip[0]=0;
- clip[1]=1;
- clip[2]=y-size;
- glClipPlane(GL_CLIP_PLANE2, clip);
- glEnable(GL_CLIP_PLANE2);
-
- clip[1]=-1;
- clip[2]=-(y+size);
- glClipPlane(GL_CLIP_PLANE3, clip);
- glEnable(GL_CLIP_PLANE3);
-
- glPopMatrix();
-
- render();
-
- glDisable(GL_CLIP_PLANE0);
- glDisable(GL_CLIP_PLANE1);
- glDisable(GL_CLIP_PLANE2);
- glDisable(GL_CLIP_PLANE3);
-
- GL::render_mode(GL::RENDER);
- Track3D *track=0;
- unsigned track_depth=numeric_limits<unsigned>::max();
- for(vector<GL::SelectRecord>::iterator i=select_buf.begin(); i!=select_buf.end(); ++i)
- if(i->min_depth<track_depth)
- {
- track=reinterpret_cast<Track3D *>(i->names.back());
- track_depth=i->min_depth;
- }
-
- return track;
+ vehicles.erase(&v.get_vehicle());
+}
+
+Vehicle3D &Layout3D::get_vehicle(Vehicle &v) const
+{
+ return *get_item(vehicles, &v);