Commit Graph

24 Commits

Author SHA1 Message Date
Jane Tournois a5bf1e1662 make walk_to_next_3() const
and declare variables later when possible
2019-10-14 16:04:56 +02:00
Jane Tournois d145abaf9a temporarily change the example for debugging : the commented queries do pass 2019-10-08 17:39:35 +02:00
Jane Tournois 27eedb168a fix the case where source, target, and vert[i] are aligned
Revert "deal with another degenerate case"

This reverts commit f269280dd6.
2019-10-07 17:38:27 +02:00
Jane Tournois f269280dd6 deal with another degenerate case
when reaching end(), and when source, target, and the vertex vi are aligned,
o0 is ZERO and o1 is ZERO too
but target target can be `inside` anyhow
2019-10-04 14:30:43 +02:00
Jane Tournois d4289524a9 fix the constructor of Triangulation_segment_cell_traverser
until now, when the query segment started exactly on a vertex/edge/facet,
the constructor was setting _cur to one cell incident to this vertex/edge/facet,
not necessarily the one that was intersected by the segment query

this commit fixes it by introducing the function
`jump_to_intersecting_cell()`, that changes _cur to point to the right cell
2019-10-03 12:25:36 +02:00
Laurent Rineau c78d4b66a9 Add SPDX license headers 2019-09-12 10:01:20 +02:00
Laurent Rineau b438e73b4b cleanup: synchronize with the older branch 2019-09-11 11:04:34 +02:00
Jane Tournois 9d23b2f20c move functions from Triangulation_3 to the traverser header
now Triangulation_3.h is the same as in cgal/master branch,
and everything specific to the traverser has been moved to
the traverser header
2019-09-10 19:26:43 +02:00
Jane Tournois 3f96a41f93 fix warning : code not reached 2019-09-10 19:21:45 +02:00
Jane Tournois 4e419e9c75 little cleaning around CGAL_FAST_TRAVERSER
using this code speedups the traversal by 20% with Epick, 35% with Epeck
and our tests remain valid,
so we can remove the macro and activate the code
2019-09-10 19:21:45 +02:00
Andreas Fabri bbfeedcf5a Oliver's faster walk_to_next_3() 2018-03-16 19:24:36 +01:00
Jane Tournois bd34d03c15 add cheaper orientation function to traverser
it uses Simple_cartesian<double> to make cheaper, though less
precise, tests
2017-09-21 11:39:40 +02:00
Jane Tournois 80c998dfc3 fix errors and warnings for linux g++ 2016-12-08 11:24:58 +01:00
Jane Tournois addbfb3837 do not return more than one cell_iterator value with same entry
previous commit was dealing with the case where entry is a vertex,
here we deal with all entry types

PLUS fix the edge - facet - vertex degenerate case
2016-12-05 16:36:32 +01:00
Jane Tournois 001894dc7e deal with vertex-degenerate case
when the query segment passes exactly through a vertex, avoid returning more
than one cell containing this vertex
operator++ iterates until it finds a cell which does not contain this vertex
2016-12-05 12:06:51 +01:00
Jane Tournois f31155a0ce Revert "remove random generator"
This reverts commit 8b68ab3459.

# Conflicts:
#	Triangulation_3/include/CGAL/Triangulation_segment_traverser_3.h

NOTE
in the degenerate case where the query passes exactly through an edge
(i.e. through both of its vertices), it could happen that the iterator
"circulates" around the edge, whithout finding a way to get out of this
infinite loop

randomness is re-introduced to avoid this
2016-12-02 16:17:38 +01:00
Jane Tournois 8b68ab3459 remove random generator 2016-11-08 15:06:57 +01:00
Jane Tournois 6afd0fc72a remove the extra tds constructed to store source and target as vertices
this implies changing all `vert` containers into arrays of Point*
(instead of arrays of Vertex_handle)
2016-11-07 15:20:06 +01:00
Jane Tournois d56a694a5c add missing namespace 2016-11-04 17:13:29 +01:00
Jane Tournois b315f6e8a5 add debug code
to check whether the computed next cell really does intersect the query segment
[source, target]
we do not deal with infinite cell because intersection does not mean much.
2016-10-24 11:54:27 +02:00
Jane Tournois eb59e2e0fa when "prev" is skipped, its orientation info should be set anyway 2016-10-21 17:15:23 +02:00
Thijs van Lankveld 7508c18322 Iterator pattern implemented. 2016-10-21 12:33:37 +02:00
Thijs van Lankveld c3fe9652f0 First version of the segment traverser, including inclusion in the documentation. 2016-10-21 12:32:28 +02:00
Thijs van Lankveld 5640b84b2b First setup for the segment traverser small feature. 2016-10-21 12:31:05 +02:00