Polygon_2 CollisionDetector::translate_polygon_to(const Polygon_2& poly, const Point_2& new_ref_pt) const { m_translate_helper.resize(0); const Point_2 &ref = *poly.left_vertex(); std::pair<double,double> diff( //Vector_2 diff( CGAL::to_double(ref.x().exact()) - CGAL::to_double(new_ref_pt.x().exact()), CGAL::to_double(ref.y().exact()) - CGAL::to_double(new_ref_pt.y().exact()) ); for (Polygon_2::Vertex_const_iterator it = poly.vertices_begin(), it_end = poly.vertices_end(); it != it_end; ++it) { m_translate_helper.push_back( Point_2(CGAL::to_double(it->x()) + diff.first, CGAL::to_double(it->y()) + diff.second ) ); //translated.push_back( (*it) + diff ); } Polygon_2 new_poly(m_translate_helper.begin(),m_translate_helper.end()); return new_poly; }