Commit Graph

64306 Commits

Author SHA1 Message Date
Panagiotis Cheilaris 69421720e6 add oriented_side_face_tiebreak to implementation
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:56 +02:00
Panagiotis Cheilaris 700d5a14a8 add missing return type of find_faces_to_split
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:56 +02:00
Panagiotis Cheilaris 6a1e7d136c derive Linf2 from L2 (definitions)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:56 +02:00
Panagiotis Cheilaris 4f78585e42 SDG Linf fast insertion examples
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:56 +02:00
Panagiotis Cheilaris 5ae67aa4db more rare name for former tuple_maker
tuple_maker -> sdg_tuple_maker

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:56 +02:00
Panagiotis Cheilaris 95d83591b0 use CGAL_CFG_NO_CPP0X_TUPLE in SDG Linf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:56 +02:00
Panagiotis Cheilaris 6c022aca96 simplify types for sdg-count-sites.cpp in Linf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:56 +02:00
Panagiotis Cheilaris 201de50a9b SDG Linf demo correct types
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:56 +02:00
Panagiotis Cheilaris a8d83a63c8 SDG Linf exact example: use typedef
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:55 +02:00
Panagiotis Cheilaris 540b8ca691 SDG Linf red blue example with typedef
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:55 +02:00
Panagiotis Cheilaris 685acd8379 use typedef in a SDG Linf example
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:55 +02:00
Panagiotis Cheilaris 8de904afd7 put CGAL_SDG_DEBUG definition in SDG Linf basic.h
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:55 +02:00
Panagiotis Cheilaris 893a732d45 do not use linf_radius_pps for efficiency reasons
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:55 +02:00
Panagiotis Cheilaris 9b79f593c2 fix float, ppsp case, choice of refpoint
This fixes a problem that manifests with input n88.cin:

s 23.194048 69.95298  23.186834 69.952034
s 22.381594 70.510712  22.38833 70.519165
s 22.393114 70.519165  22.406164 70.512787

Vertex_conflict (pqrt)=
(p 23.186834 69.952034)
(p 22.38833 70.519165)
(s 22.381594 70.510712 22.38833 70.519165)
(p 22.393114 70.519165) returns 1  or (B, D, CD; E) returns 1,
although it should return -1.

I introduce a new function linf_radius_pps that chooses one
of the two points of the Voronoi vertex based on its proximity
to the argument t of the incircle test.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:55 +02:00
Panagiotis Cheilaris 4620d9c981 use is_on_hv_seg_line also in ring case
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:55 +02:00
Panagiotis Cheilaris 86feec3169 fix two test expected return values
They are related to test points being on the line
of an axis-parallel segment.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:55 +02:00
Panagiotis Cheilaris 3176883552 fix to counterclockwise site order for some tests
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:54 +02:00
Panagiotis Cheilaris d496070ad5 fix of expected return values of two tests
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:54 +02:00
Panagiotis Cheilaris db389aaf06 fix float, for vertex conflict with point t
This fixes a problem that manifests with input n71.cin:

s 11.979542 63.269928  12.073787 63.172432
s 10.011458 64  10.041777 64
s 11.174461 64  11.17787 64

debug: Vertex_conflict (pqrt)=
  (p 11.979542 63.269928)
  (p 10.041777 64)
  (s 10.011458 64 10.041777 64)
  (p 11.174461 64)
returns -1, or vc(A, D, CD ; E) returns -1 (NEGATIVE),
although it should return POSITIVE (i.e., no conflict).

The fix is using the new is_on_hv_seg_line function, which checks
if the test point is on the line of the axis-parallel segment r.
Function is_on_hv_seg_line is invoked in the easy degeneracies
tests.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:54 +02:00
Panagiotis Cheilaris 61964d4fdd priority to band over endpoint of segment
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:54 +02:00
Panagiotis Cheilaris ccdf9ef8fd has_positive_slope only for non-axis parallel
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:54 +02:00
Panagiotis Cheilaris 9cd7fdf358 use zero_voronoi_area in all fecf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:54 +02:00
Panagiotis Cheilaris 98e9366202 fix float, when iecf has zero voronoi area point
This is a problem that manifests with input n52.cin:

s 22.649618 70.68029799999999  22.651001 70.683487
s 22.651001 70.683487  22.654936 70.684631
s 22.654451 70.688507  22.633778 70.683037

debug infinite-edge-int-cf tocheck (q,s,r,t,sgn)=
p 22.651001 70.683487
s 22.651001 70.683487 22.654936 70.684631
s 22.649618 70.680298 22.651001 70.683487
s 22.654451 70.688507 22.633778 70.683037
-1
returns 0

otherwise: iecf (B, BC, AB, DE, -1) returns 0 (false)
although it should return 1 (true)

The fix uses function zero_voronoi_area.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:54 +02:00
Panagiotis Cheilaris cf3cc0e109 move zero_voronoi_area to Basic_predicates_C2.h
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:54 +02:00
Panagiotis Cheilaris f5d3777bd6 fix float, when fecf has zero voronoi area point
This is a problem that manifests with input n41.cin:

s 23.980547 71.044022  23.96011 71.05307000000001
s 23.96011 71.05307000000001  23.950411 71.05497
s 23.957935 71.07712600000001  23.960318 71.07725499999999
s 23.960318 71.07725499999999  23.984632 71.073189

debug finite-edge-int-cf with (p,q,r,s,t,sgn)= s 23.957935 71.077126 23.960318 71.077255 p 23.96011 71.05307 s 23.980547 71.044022 23.96011 71.05307 s 23.96011 71.05307 23.950411 71.05497 s 23.960318 71.077255 23.984632 71.073189 -1 returns 0 (false)
although it should return 1 (true)

otherwise fecf (DE, B, AB, BC,  EF, -1) returns 0 although it should return 1

The fix uses a new function zero_voronoi_area.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:54 +02:00
Panagiotis Cheilaris e7c96941ce add a comment after a long if in fecf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:53 +02:00
Panagiotis Cheilaris de83047224 test for t endpoint of segments in SSS
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:53 +02:00
Panagiotis Cheilaris 4d292ccdf1 ring case: endpoint of segments in SSS
check_easy_degeneracies returns POSITIVE and result is used

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:53 +02:00
Panagiotis Cheilaris 66df419afb fix for float case: endpoint of segments
Related to input n31.cin:

s 25.966988 70.978706  25.987635 70.97238900000001
s 25.987635 70.97238900000001  26.000231 70.97238900000001
s 26.000231 70.97238900000001  26.015379 70.975082

s A B  s B C  s C D

Vertex_conflict pqrt ( (AB, BC, CD) ; C ) was returning NEGATIVE
and now it returns POSITIVE.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:53 +02:00
Panagiotis Cheilaris 8e3be7ce34 some tests for p,q,inf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:53 +02:00
Panagiotis Cheilaris e157994ef1 remove computing some lines in (p,q,inf)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:53 +02:00
Panagiotis Cheilaris 1e975ddd9c use cmpx, cmpy together with line check
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:53 +02:00
Panagiotis Cheilaris 4fc33a968e new version of intersects_segment_interior_inf_box
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:53 +02:00
Jane Tournois ec365e2bb4 use keep_connected_components in Polyhedron demo (selection tool) 2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris bd94d902fe fix for endpoint of axis-parallel segment
Related to input n21.cin:

s 25.914984 70.968903  25.912687 70.97624999999999
s 25.987635 70.97238900000001  26.000231 70.97238900000001

Vertex_conflict (pqrt)=
(p 25.914984 70.968903) (p 26.000231 70.972389)
(s 25.987635 70.972389 26.000231 70.972389)
(p 25.987635 70.972389)

now returns POSITIVE

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris dd74ecd4a1 use right_turn in a incircle_pps predicate
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris 907f1d8b69 fix vertex conflict when t is endpoint of r
This is a fix for field number types, for a vertex conflict
(p,q,r,t) when t is an endpoint of r and t is not axis-parallel.

The problem manifested for input n11.cin:

s 4.7031002 61  4.70013 60.996868
s 4.7356453 61  4.7417111 61.018108
s 4.743824 61.0336  4.7237062 61.037254

(s A B, s C D, s E F)

The vertex conflict predicate (A, CD, F ; C) returned NEGATIVE.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris 2b9c6ad3bd fix p,q,inf vertex conflict when p, q share coord
This fixes a problem when a floating point filtering kernel is
used and the input consists of non-integer numbers. The problem
manifestated with input n2scaled.cin:

s 4.703 61.000  4.700 60.996
s 4.732 60.997  4.735 61.000

(s A B, s C D)

The vertex conflict predicate (A, D, inf ; AB) returned NEGATIVE.
This was because an oriented side predicate for line AD and point
A of segment AB was computed. This predicate does not have to be
run, because we already know that A is an endpoint of AB.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris f2e1e69d5f translate a plg file by the given x, y arguments
Example run:

cat ~/Dropbox/cgal/experiment-gulp/tmhuge.plg | python3.4 ~/code/geom/Segment_Delaunay_graph_Linf_2/developer_scripts/plgtranslate.py -81700 -640000 > ~/Dropbox/cgal/experiment-gulp/tmhugetrans.plg

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris 7eafd4d0cc remove redefinition of OrientationLinf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris a93f1694fb put parentheses around some ?-operator arguments
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris 3be5e2e376 differentiate kernel ray and segment
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris 45f3b36509 count_eq >= 0 is always true
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:52 +02:00
Panagiotis Cheilaris d0fa197b70 convert lsp to plg format
Example use:

cat tl2less.cin | python3.4 ~/code/geom/Segment_Delaunay_graph_Linf_2/developer_scripts/lsp2plg.py > tl2less.plg

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:51 +02:00
Panagiotis Cheilaris 180fb36491 more infinite PPP vertex conflicts tests
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:51 +02:00
Panagiotis Cheilaris 070187e8ed ((p, q, inf), t) incircle test
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:51 +02:00
Panagiotis Cheilaris 1fb83d66dc initialize inf_i variable
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:51 +02:00
Panagiotis Cheilaris cb9b4fbf17 remove variadic templates and bug fixes
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:51 +02:00
Panagiotis Cheilaris ecbba3ba92 incirc benchmark with variadic templates
This requires C++11.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:51 +02:00
Panagiotis Cheilaris 0d884eebb6 show number of sites in command line in incirc
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:51 +02:00