#ifndef SCENE_H #define SCENE_H #include "typedefs.h" struct Scene { std::list points; P3DT3 periodic_triangulation; bool eight_copies; bool two_dimensional; void lloyd_step() { std::vector vts; for (Periodic_point_iterator ppit = periodic_triangulation.periodic_points_begin(P3DT3::UNIQUE) ; ppit != periodic_triangulation.periodic_points_end(P3DT3::UNIQUE) ; ++ppit) vts.push_back(ppit.get_vertex()); points.clear(); std::vector dual_vertices; Point_3 new_point; for (std::vector::iterator vit = vts.begin(); vit != vts.end(); ++vit) { if (two_dimensional) { dual_vertices.clear(); periodic_triangulation.dual(*vit,std::back_inserter(dual_vertices)); new_point = compute_barycenter_2D(dual_vertices); } else { new_point = periodic_triangulation.dual_centroid(*vit); } points.push_back(new_point); } periodic_triangulation.clear(); periodic_triangulation.insert(points.begin(),points.end()); } Point_3 compute_barycenter_2D(std::vector dual_pts) const { T2 t; for (unsigned int i=0 ; i= d.xmax() ? x-d.xmax()+d.xmin() : x)); y = (y < d.ymin() ? y+d.ymax()-d.ymin() : (y >= d.ymax() ? y-d.ymax()+d.ymin() : y)); CGAL_triangulation_postcondition((d.xmin()<=x)&&(x