cgal/Inscribed_areas/examples/Inscribed_areas/largest_empty_rectangle.cpp

40 lines
1.2 KiB
C++

#include <CGAL/Simple_cartesian.h>
#include <CGAL/Largest_empty_iso_rectangle_2.h>
#include <iostream>
typedef double Number_Type;
typedef CGAL::Simple_cartesian<Number_Type> K;
typedef CGAL::Largest_empty_iso_rectangle_2<K> Largest_empty_iso_rect_2;
typedef K::Iso_rectangle_2 Iso_rectangle_2;
typedef K::Point_2 Point_2;
int main()
{
Iso_rectangle_2 bounding_box(Point_2(0, 0), Point_2(10, 10));
Largest_empty_iso_rect_2 leir(bounding_box);
leir.insert(Point_2(6,1));
leir.insert(Point_2(1,8));
leir.insert(Point_2(9,5));
leir.insert(Point_2(5,9));
std::cout << "The input bounding box is " << bounding_box << std::endl;
std::cout << "The input point set is:" << std::endl;
for(Largest_empty_iso_rect_2::const_iterator it = leir.begin();
it != leir.end();
++it){
const Point_2& p = *it;
std::cout << " " << p << std::endl;
}
Iso_rectangle_2 b = leir.get_largest_empty_iso_rectangle();
std::cout << std::endl << "The largest empty iso rectangle is " <<
b << std::endl;
std::cout << "Its area is " << b.area() << std::endl;
return 0;
}