mirror of https://github.com/CGAL/cgal
Merge pull request #6796 from janetournois/Mesh_3-compare_distance_performance_issue-jtournois
Mesh_3 speedup (filter failures in `Compare_distance_3(Point_3, Segment_3, Point_3)` )
This commit is contained in:
commit
207a1e896b
|
|
@ -373,16 +373,23 @@ private:
|
|||
|
||||
if(nearest_is_a_segment)
|
||||
{
|
||||
if(compare_distance(p, seg, nearest_segment) == CGAL::SMALLER)
|
||||
{
|
||||
nearest_segment = seg;
|
||||
result = previous;
|
||||
}
|
||||
if(compare_distance(p, *it, nearest_segment) == CGAL::SMALLER)
|
||||
{
|
||||
nearest_vertex = it;
|
||||
nearest_is_a_segment = false;
|
||||
result = it;
|
||||
if (possibly(angle(*previous, *it, p) == CGAL::ACUTE) &&
|
||||
compare_distance(p, seg, *nearest_vertex) == CGAL::SMALLER)
|
||||
{
|
||||
nearest_segment = seg;
|
||||
nearest_is_a_segment = true;
|
||||
result = previous;
|
||||
}
|
||||
}
|
||||
else if(compare_distance(p, seg, nearest_segment) == CGAL::SMALLER)
|
||||
{
|
||||
nearest_segment = seg;
|
||||
result = previous;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
@ -391,7 +398,9 @@ private:
|
|||
nearest_vertex = it;
|
||||
result = it;
|
||||
}
|
||||
if(compare_distance(p, seg, *nearest_vertex) == CGAL::SMALLER)
|
||||
if ((nearest_vertex != it ||
|
||||
possibly(angle(*previous, *it, p) == CGAL::ACUTE)) &&
|
||||
compare_distance(p, seg, *nearest_vertex) == CGAL::SMALLER)
|
||||
{
|
||||
nearest_segment = seg;
|
||||
nearest_is_a_segment = true;
|
||||
|
|
|
|||
Loading…
Reference in New Issue