diff --git a/src/db/db/dbPLCTriangulation.cc b/src/db/db/dbPLCTriangulation.cc index 63b77c981..28084ae89 100644 --- a/src/db/db/dbPLCTriangulation.cc +++ b/src/db/db/dbPLCTriangulation.cc @@ -221,24 +221,24 @@ Triangulation::find_points_around (Vertex *vertex, double radius) } Vertex * -Triangulation::insert_point (const db::DPoint &point, std::list > *new_triangles, double snap) +Triangulation::insert_point (const db::DPoint &point, std::list > *new_triangles) { - return insert (mp_graph->create_vertex (point), new_triangles, snap); + return insert (mp_graph->create_vertex (point), new_triangles); } Vertex * -Triangulation::insert_point (db::DCoord x, db::DCoord y, std::list > *new_triangles, double snap) +Triangulation::insert_point (db::DCoord x, db::DCoord y, std::list > *new_triangles) { - return insert (mp_graph->create_vertex (x, y), new_triangles, snap); + return insert (mp_graph->create_vertex (x, y), new_triangles); } Vertex * -Triangulation::insert (Vertex *vertex, std::list > *new_triangles, double snap) +Triangulation::insert (Vertex *vertex, std::list > *new_triangles) { Polygon *in_triangle = 0; Edge *on_edge = 0; - if (! find_triangle_for_point (*vertex, snap, in_triangle, on_edge)) { + if (! find_triangle_for_point (*vertex, in_triangle, on_edge)) { // the new vertex is outside the domain tl_assert (! m_is_constrained); @@ -249,11 +249,9 @@ Triangulation::insert (Vertex *vertex, std::list > *new_tr if (on_edge) { - double snap_range = std::max (db::epsilon, snap * on_edge->length ()); - - if (snap > 0.0 ? vertex->distance (*on_edge->v1 ()) < snap_range : is_equal (*vertex, *on_edge->v1 ())) { + if (is_equal (*vertex, *on_edge->v1 ())) { return on_edge->v1 (); - } else if (snap > 0.0 ? vertex->distance (*on_edge->v2 ()) < snap_range : is_equal (*vertex, *on_edge->v2 ())) { + } else if (is_equal (*vertex, *on_edge->v2 ())) { return on_edge->v2 (); } else { split_triangles_on_edge (vertex, on_edge, new_triangles); @@ -273,15 +271,13 @@ Triangulation::insert (Vertex *vertex, std::list > *new_tr } } -bool Triangulation::find_triangle_for_point (const db::DPoint &point, double snap, Polygon *&in_triangle, Edge *&on_edge) +bool Triangulation::find_triangle_for_point (const db::DPoint &point, Polygon *&in_triangle, Edge *&on_edge) { Edge *edge = find_closest_edge (point); if (edge) { - double snap_range = std::max (db::epsilon, snap * edge->length ()); - - if (snap > 0.0 ? std::abs (edge->edge ().distance (point)) < snap_range : edge->side_of (point) == 0) { + if (edge->side_of (point) == 0) { on_edge = edge; return true; diff --git a/src/db/db/dbPLCTriangulation.h b/src/db/db/dbPLCTriangulation.h index 75b92a33c..8c352514c 100644 --- a/src/db/db/dbPLCTriangulation.h +++ b/src/db/db/dbPLCTriangulation.h @@ -163,7 +163,7 @@ public: * This method can be called after "triangulate" to add new points and adjust the triangulation. * Inserting new points will maintain the (constrained) Delaunay condition. */ - Vertex *insert_point (const db::DPoint &point, std::list > *new_triangles = 0, double snap = 0.0); + Vertex *insert_point (const db::DPoint &point, std::list > *new_triangles = 0); /** * @brief Finds the edge for two given points @@ -286,7 +286,7 @@ protected: * If "new_triangles" is not null, it will receive the list of new triangles created during * the remove step. */ - Vertex *insert_point (db::DCoord x, db::DCoord y, std::list > *new_triangles = 0, double snap = 0.0); + Vertex *insert_point (db::DCoord x, db::DCoord y, std::list > *new_triangles = 0); /** * @brief Removes the given vertex @@ -335,9 +335,9 @@ private: void remove_inside_vertex (Vertex *vertex, std::list > *new_triangles_out = 0); std::vector fill_concave_corners (const std::vector &edges); void fix_triangles (const std::vector &tris, const std::vector &fixed_edges, std::list > *new_triangles); - bool find_triangle_for_point (const db::DPoint &point, double snap, Polygon *&in_triangle, Edge *&on_edge); + bool find_triangle_for_point (const db::DPoint &point, Polygon *&in_triangle, Edge *&on_edge); Edge *find_closest_edge (const db::DPoint &p, Vertex *vstart = 0, bool inside_only = false) const; - Vertex *insert (Vertex *vertex, std::list > *new_triangles = 0, double snap = 0.0); + Vertex *insert (Vertex *vertex, std::list > *new_triangles = 0); void split_triangle (Polygon *t, Vertex *vertex, std::list > *new_triangles_out); void split_triangles_on_edge (Vertex *vertex, Edge *split_edge, std::list > *new_triangles_out); void add_more_triangles (std::vector &new_triangles,