diff --git a/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h b/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h index 4cfe1770c1b..6253c629fe4 100644 --- a/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h +++ b/Optimal_bounding_box/include/CGAL/Optimal_bounding_box/oriented_bounding_box.h @@ -88,15 +88,17 @@ void construct_oriented_bounding_box(const PointRange& points, zmax = (std::max)(rot_pt.z(), zmax); } - obb_points[0] = traits.construct_point_3_object()(xmin, ymin, zmin); - obb_points[1] = traits.construct_point_3_object()(xmax, ymin, zmin); - obb_points[2] = traits.construct_point_3_object()(xmax, ymax, zmin); - obb_points[3] = traits.construct_point_3_object()(xmin, ymax, zmin); + const typename Traits::Construct_point_3 cp = traits.construct_point_3_object(); - obb_points[4] = traits.construct_point_3_object()(xmin, ymax, zmax); // see order in make_hexahedron()... - obb_points[5] = traits.construct_point_3_object()(xmin, ymin, zmax); - obb_points[6] = traits.construct_point_3_object()(xmax, ymin, zmax); - obb_points[7] = traits.construct_point_3_object()(xmax, ymax, zmax); + obb_points[0] = cp(xmin, ymin, zmin); + obb_points[1] = cp(xmax, ymin, zmin); + obb_points[2] = cp(xmax, ymax, zmin); + obb_points[3] = cp(xmin, ymax, zmin); + + obb_points[4] = cp(xmin, ymax, zmax); // see order in make_hexahedron()... + obb_points[5] = cp(xmin, ymin, zmax); + obb_points[6] = cp(xmax, ymin, zmax); + obb_points[7] = cp(xmax, ymax, zmax); // Apply the inverse rotation to the rotated axis aligned bounding box for(std::size_t i=0; i<8; ++i)