delete *i;
}
-void Track3D::get_bounds(const Angle &angle, Vector &minp, Vector &maxp) const
-{
- type.get_bounds(angle-track.get_rotation(), minp, maxp);
-
- Vector pos = rotated_vector(track.get_position(), -angle);
- minp += pos;
- maxp += pos;
-
- float slope = track.get_slope();
- if(slope>0)
- maxp.z += slope;
- else
- minp.z += slope;
-}
-
Vector Track3D::get_node() const
{
- Vector minp;
- Vector maxp;
- type.get_bounds(Angle::zero(), minp, maxp);
+ Geometry::BoundingBox<float, 3> bbox = track.get_type().get_shape()->get_axis_aligned_bounding_box();
+ const Vector &minp = bbox.get_minimum_point();
+ const Vector &maxp = bbox.get_maximum_point();
return track.get_position()+rotated_vector((minp+maxp)/2.0f, track.get_rotation())+Vector(0, 0, 0.02);
}