- {
- // XXX Use generic bounding box when it is implemented
- if(Track *track = dynamic_cast<Track *>(i->object))
- {
- unsigned n_endpoints = track->get_type().get_endpoints().size();
- for(unsigned j=0; j<n_endpoints; ++j)
- {
- Vector p = track->get_endpoint_position(j);
- if(i==objects.begin() && j==0)
- minp = maxp = p;
- else
- {
- minp.x = min(minp.x, p.x);
- maxp.x = max(maxp.x, p.x);
- minp.y = min(minp.y, p.y);
- maxp.y = max(maxp.y, p.y);
- minp.z = min(minp.z, p.z);
- }
- }
- }
- else
- {
- const Vector &p = i->object->get_position();
- minp.x = min(minp.x, p.x);
- maxp.x = max(maxp.x, p.x);
- minp.y = min(minp.y, p.y);
- maxp.y = max(maxp.y, p.y);
- minp.z = min(minp.z, p.z);
- }
- }