Commit Graph

700 Commits

Author SHA1 Message Date
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
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
Panagiotis Cheilaris cff7555c67 p, q, r on corners and t on side interior
If p, q, r on corners and t on interior of a side,
then there is a conflict.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:51 +02:00
Panagiotis Cheilaris 7b08dec920 minmax also returns points
It seems unavoidable but some of the unnatural coordinates
of the extreme points are needed. For example, the x coordinate
of the bottom point is needed in side of bounded square.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:51 +02:00
Panagiotis Cheilaris eecc11a2a2 avoid comparisons when expanding rectangle
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris a3fa5a8716 use MinMaxTuple as return value of minmax
This might slow things down.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris 3e40227feb minmax function takes three template arguments
This is to prepare a possible passing of coordinates.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris bf63b5b6be speedup in some cases of pppp incircle
Introduction of analyze_smalleq that returns a SmallerEqTuple,
is_L_shaped check and are_at_three_corners check.
Avoid checking some Comparison_result.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris 4382defa9e more carfeul compute_v_if_not_computed for ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris 34945ef50d add is_v_computed assertions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris 6c81fdc38b compute vertex in oriented_side of ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris f619dd32b1 specify infinite vertices in debug messages
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:50 +02:00
Panagiotis Cheilaris 61c4d6fac6 avoid comparisons in exist_two_with_same_y
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris 7ea56eac67 avoid comparisons in exist_two_with_same_x
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris dd4da7d78d move mirror computation inside same coord cases
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris 2cc45a8b98 exist_two_with_same_(x|y) computed from the start
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris ecaa0f8193 assertions on extremity of different coord point
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris db9b3f43bb bounded side extreme points debug message earlier
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris f344d9dfa9 minmax function in side of bounded square
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris 4899e3ff05 remove unused Site_2 type in test
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:49 +02:00
Panagiotis Cheilaris dc951c4695 PPPP same coordinate, opposite side test
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris 208775665e use division by two instead of half in sidebs
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris d981327ea6 do not compute always vertex for incircle ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris 37f7b0a301 remove half from ring compute_ppp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris c9f84adee9 PPPP same side and other close test
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris 8f700308b8 PPPP same side and other at corner test
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris dbd8c285ac PPPP two same side and other outside test
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris b677d64bc4 PPPP test same side and same coordinate
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris b06e60ae74 PPPP same interior side points and other between
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:48 +02:00
Panagiotis Cheilaris df42df98f0 PPPP corner points tests
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:47 +02:00
Panagiotis Cheilaris 870f05800e pssd5aless2.cin related validity test
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:47 +02:00
Panagiotis Cheilaris 342ddb0348 test PSS bdiff=3 point on a side pssd3varxa.cin
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:47 +02:00
Panagiotis Cheilaris a080f0c1b8 test PSS bdiff=3 point on a side pssd3a.cin
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:47 +02:00
Panagiotis Cheilaris fd1b7e5023 test PSS bdiff=4 corner point pssd4a.cin
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:47 +02:00
Panagiotis Cheilaris 6b9e5caab5 test PSS bdiff=2 opposite side pssd2btw3.cin
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:47 +02:00
Panagiotis Cheilaris f3ac657c12 tests related to points_inside_touching_sides
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:47 +02:00
Panagiotis Cheilaris 789f3e6c91 sss test with one axis-parallel segment
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:47 +02:00
Panagiotis Cheilaris 4e4c4d9fff test for SSS axis-parallel
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:46 +02:00
Sandeep Kumar Dey 466f82d122 Tests for pps case with vertical segment
Tests for pps case with vertical segment and two points with same y coordinate on the left of seg
12 test cases are inserted for different position of test point t.

Conflicts:
	Segment_Delaunay_graph_Linf_2/test/Segment_Delaunay_graph_Linf_2/test_sdg_traits_2.cpp

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:46 +02:00
Panagiotis Cheilaris e45bc4f341 test related to input pssprob1.cin
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:46 +02:00
Sandeep Kumar Dey d8ba6dd2af incircle test pps
The segment is vertical and the points are on right side of the segment.
And also the points on projection will hit the line segment.
t is chosen at different locations to test incircle property.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:46 +02:00
Panagiotis Cheilaris 870d50871b pps tests for points with same coordinates
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:46 +02:00
Panagiotis Cheilaris c6ebc066c0 tests related to pssphor1.cin etc.
These are incircle tests related to input pssphor1.cin:

s -100 -50 50 100
s 50 50 100 50
p 0 0

and similar inputs (pssphor2.cin, pssphor3.cin).

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:46 +02:00
Panagiotis Cheilaris 3fd556cea1 tests related to br80.cin
Input br80.cin is:
s       10      120     60      20
s       60      40      70      60
s       30      110     100     40

(segments AB, CD, EF, respectively)

The incircle predicates (CD, F, EF, B) and (CD, B, F, EF) should
both return 0 (ZERO).

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:46 +02:00
Panagiotis Cheilaris 2454107687 tests for a pss case in 3segstepnosegbef.cin
test_incircle<Gt>(Point_2(0, 100),
                    Segment_2(Point_2(0, 50), Point_2(0, 100)),
                    Segment_2(Point_2(-50, 50), Point_2(50, -50)),
                    Point_2(50, 0),
                    CGAL::NEGATIVE);

  test_incircle<Gt>(Segment_2(Point_2(-50, 50), Point_2(50, -50)),
                    Point_2(0, 100),
                    Segment_2(Point_2(0, 50), Point_2(0, 100)),
                    Point_2(50, 0),
                    CGAL::NEGATIVE);

  test_incircle<Gt>(Segment_2(Point_2(0, 50), Point_2(0, 100)),
                    Segment_2(Point_2(-50, 50), Point_2(50, -50)),
                    Point_2(0, 100),
                    Point_2(50, 0),
                    CGAL::NEGATIVE);

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:46 +02:00
Panagiotis Cheilaris 50fc5924fd pss Linf incircle test related to r2minpt.cin
The r2minpt.cin input is as follows:
s -91 36 36 87
p -23 4
p -17 37
p -17 40

The test in test_sdg_traits_2.cpp is as follows:
test_incircle<Gt>(Point_2(-23, 4), Point_2(-17, 37),
                  Segment_2(Point_2(-91, 36), Point_2(36, 87)),
                  Point_2(-17, 40),
                  CGAL::POSITIVE);

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:46 +02:00
Panagiotis Cheilaris 78f510c399 a new traits SDG Linf tester
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:45 +02:00
Panagiotis Cheilaris aee5d567cd updated test for Linf (using std::string)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:45 +02:00
Panagiotis Cheilaris c5c82940fb do not allow deletion of sites in Linf test
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:45 +02:00
Panagiotis Cheilaris eaa50eba4e SDG Linf testsuite programs and data
The test programs are adapted from the SDG L2 ones.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:45 +02:00
Panagiotis Cheilaris be3ef8cfa4 remove another warning for s2 pointer
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:45 +02:00
Panagiotis Cheilaris c70fc29971 remove dx warning in Side_of_bounded_square_2.h
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:45 +02:00
Panagiotis Cheilaris e87c6b8719 incirc benchmark program
Example use:

type=linf ; iprofiler -o incirc${type} -T 15s -timeprofiler ~/code/geom/Segment_Delaunay_graph_Linf_2/benchmark/Segment_Delaunay_graph_Linf_2/incirc -r 50000000 --${type} 'p 200 -150'  'p 250 50'  'p 50 -50'  'p 300 -50'

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:45 +02:00
Panagiotis Cheilaris 41096299e7 add --linf argument to benchmark-gen for symmetry
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:45 +02:00
Panagiotis Cheilaris 50ecfb1e13 CMakeLists.txt for benchmark-gen
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:45 +02:00
Panagiotis Cheilaris 94d51380ba general benchmark program for both L2 and Linf
Example uses:

time ( cat ~/code/mycgal/Segment_Delaunay_graph_2/benchmark/Segment_Delaunay_graph_2/data/norway.cin | iprofiler -T 11s -o nlinf -timeprofiler ~/code/geom/Segment_Delaunay_graph_Linf_2/benchmark/Segment_Delaunay_graph_Linf_2/benchmark-gen )

time ( cat ~/code/mycgal/Segment_Delaunay_graph_2/benchmark/Segment_Delaunay_graph_2/data/norway.cin | iprofiler -T 10s -o nl2 -timeprofiler ~/code/geom/Segment_Delaunay_graph_Linf_2/benchmark/Segment_Delaunay_graph_Linf_2/benchmark-gen --l2 )

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris f9488b5865 prepare benchmark to support both L2 and Linf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris 8e27388e73 change pref to rref in two comments
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris e75e7498ec fix for a touching non-hv segment
This fixes a bug in the validity test for input pssd5aless2.cin:
p 100 0
s 150 0 50 -100
p 100 100
p -100 100
(A, BC, D, E)

In particular vertex conflict (BC, D, E, A) was returning -1
and now it returns ZERO.

At the same time, we should keep a negative predicate return value
for input parpar2.cin:
s -250 50 -50 -150
p -100 -50
p -60 -50
p -150 50

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris 0e3f2d5e3b PSS case bdiff=5 compute_pss_side_p_known
All bisector computations have been removed.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris 451198fe19 rotate counterclockwise by pi/2 an lsp input
Example use:

cat ~/Dropbox/geom/data/pssd3a.cin | python ~/code/geom/Segment_Delaunay_graph_Linf_2/developer_scripts/lsprotate90.py > ~/Dropbox/geom/data/pssd3b.cin

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris 61c70120c9 compute_pss_ortho_wedge function for PSS case
This function is called for bdiff in {3,4}.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris cbd9493722 compute_pss_nonhv_consecutive for field
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:44 +02:00
Panagiotis Cheilaris 25ae2f53f8 convert from plg to lsp format
Example use:

cat ~/Dropbox/geom/mat/input1.plg | ~/code/geom/Segment_Delaunay_graph_Linf_2/developer_scripts/plg2lsp.py | ipescript lsp2ipe vecmask1test.ipe 16 16 0.0625

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris 941c26e7e6 create random lsp input from a set of points
Example use:

n=20 ; bbox=100; rbox ${n} t D2 z B${bbox} | tail -n ${n} | python ~/code/geom/Segment_Delaunay_graph_Linf_2/developer_scripts/randsp.py > ~/Dropbox/geom/inp/rx9.cin

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris 6f3adf3e31 convert from lsp to ipe format (ipe lua script)
Example use:

cat ~/Dropbox/geom/mat/input1.plg | ~/code/geom/Segment_Delaunay_graph_Linf_2/developer_scripts/plg2lsp.py | ipescript lsp2ipe vecmask1test.ipe 16 16 0.0625

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris d69a143abd convert vertex conflict return values to tests
Example use:

~/code/geom/Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-exact ~/Dropbox/geom/data/pssd2btw3.cin | sed -E -e 's/\/1([^0-9])/\1/g' | sed -E -e 's/\/1$//g' | grep 'pqrt.*s.*s.*p.*returns 1' | sort | uniq | grep 'p 200 50' | tail -n 5 | ~/code/geom/Segment_Delaunay_graph_Linf_2/developer_scripts/ret2testsp.py --points 1

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris a256ff7100 convert sites from lsp to test format
Example run:

cat ~/Dropbox/geom/data/pssendp1a.cin | python ~/code/geom/Segment_Delaunay_graph_Linf_2/developer_scripts/lsp2testsp.py

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris aecf35b0c9 compute_pss_nonhv_consecutive for ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris 523bbd5475 use points_inside_touching_sides_v for POSITIVE
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris 0e6397c432 more general points_inside_touching_sides_v
Function points_inside_touching_sides_v now supports PPPx, PPSx,
and PSSx cases. Before, it supported only cases with two segments.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris 371bdd0379 use points_inside_touching_sides_v in field
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:43 +02:00
Panagiotis Cheilaris b256187e6e check that points are indeed on different sides
fix in points_inside_touching_sides_v

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 6e05a7c73f fix when two points hide a segment from vv in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 1b5db71997 assertion in place of a check for corner line
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 117ff8ff01 partial removal of PSS bisectors
There are several changes here, also in using a new typedef for Bearing.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 0223cdf33a fix: use compute_pss_bisectors
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 0d73c4e71e add an assertion in orient_line_nonendp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 45db1cc34a prepare for compute_pss_nonendp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 7231f3ba9a use Homogeneous_point_2 with compute_line_dir
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:42 +02:00
Panagiotis Cheilaris 5f82f17a9b PSS case, add compute_pss_endp to ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris f34e42e1d0 PSS endpoint case speedup for field case
Avoid using polychainline bisectors.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris 12bdb79360 use homogeneous methods in point use in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris 8893e03d23 SSS case done without polychainline bisectors
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris 1a0e53e311 change signature of orient_lines_linf
The last argument is now an array of 3 lines.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris c05ba6558a orient_lines_linf for SSS case
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris c58c9c72fb put some boolean variables later
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris fac1837664 Linf hierarchy: include L2 hier., remove constants
This change allows to use both hierarchies at the same time.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:41 +02:00
Panagiotis Cheilaris a71e948e4b small change in implementing compare_distances_ss
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 343c267ef5 different compare_distance_to_point_linf
Different compare_distance_to_point_linf implementation.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 232f1f8d46 use compute_linf_distance for point and line
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris b7a56dc72e compute_linf_distance for point and line
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 3a083a94ac bug fix related to a PSS vertex
The bug is shown, for example, in input pssprob1.cin:

s 0 100 100 100
s 0 100 0 0
p 20 -40

Let the above input be: AB, AC, D. The vertex computed for the
triple (D, AB, AC) was (140,30) and now it is the correct (70,30).

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 9f5140bc47 use return when calling axis-parallel PSS and SSS
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 016c4f7cb8 avoid accessing qold when not set in benchmarks
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 5eacf1d61a sss case for axis-parallel segments redone
Avoid using bisectors for SSS axis-parallel segments.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:40 +02:00
Panagiotis Cheilaris 2c259bbec3 make some variables constant in field sqrt
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris cdd7f6dbb0 sqrt pss case, axis-parallel segments changes
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris 65de76fb62 new compute_vv_bisectors PSS_Type function
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris 6262550710 ring pss, compute_pss_both_hv_nonpar_nonendp
Avoid bisectors in the following case:
one segment is horizontal and the other is vertical and
the point p is not an endpoint of the segments

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris e19129f57d ring, introduce compute_pss_both_hv_nonpar_nonendp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris fae41574b2 ring pss case, axis-parallel segments changes
Avoid using bisector computations; partially done for the
pss case with axis-parallel segments; it remains to do the
case when the two segments are not parallel and the point
is not the endpoint of any of the segments.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris 23d7be438b create compute_pss_bisectors function in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris 2ed35b7681 improve reading input in benchmarks (l2 and linf)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris 60cd49856b sqrt pps axis-par., avoid delegating to ppp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:39 +02:00
Panagiotis Cheilaris afa330619d in ring pps axis-par., avoid delegating to ppp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris c39cc80bb3 in pps, partially avoid delegating to a ppp
In the pps case, avoid delegating to a ppp computation when the
segment is axis-parallel and the two points share a coordinate and
the line connecting the two points is parallel to the segment.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris d2d8afba8c hvseg_coord: compute constant coordinate
new function hvseg_coord:
compute constant coordinate of an axis-parallel segment

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris 8286a8a46d sqrt pps case does not use bisectors
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris 61262decd2 slightly different comparison in pps ring case
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris 8d842de9e7 ring pps case does not use bisectors
Voronoi vertex computation in ring for PPS case
does not use bisectors any more.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris 5486b10557 ring non-axis parallel segment in pps subcase
This is only partially implemented. Still, it improves the
performance of the norway.cin benchmark.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris 87d26ad035 compute_pps_nonendp_nonhv_nonsamec use comment
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:38 +02:00
Panagiotis Cheilaris dd930c0577 remove debug macro defintions from linf algorithm
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 17229c6a17 narrow scope of current_face in linf algorithms
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 2ee5837d8b narrow scope of some variables in Linf algorithms
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 1b22fecea1 use a slightly less trivial assertion
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 8442895269 reomve old incircle sqrt for Linf
It was not used and was not maintained anyway.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 075e9d3fda sqrt new const and scope changes
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 8076c9760d ring const variables and narrow scope
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris f379f53454 correct indentation for test1d function
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:37 +02:00
Panagiotis Cheilaris 5e9749f4d6 Side_of_bounded_square_2: avoid some comparisons
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris 308d356bea remove tests that show orientations of lines
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris ab3f955e45 ring start compute_pps_nonendp_nonhv_nonsamec
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris 097972d9b2 compute_pps_nonendp_nonhv added to ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris 0ee5294312 sqrt new pps same coordinate points case
Implementation without bisectors. To do it for ring.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris 8e5f88e242 tuple use for assigning sites
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris ba033fe009 make compute_vv_bisectors inline
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris e509085931 introduce compute_pps_nonendp_nonhv function
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris e0deec43b1 remove another too-strong assertion
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:36 +02:00
Panagiotis Cheilaris 3f5e75e2f2 remove a too-strong assertion (triangle case)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris ae0689180b adapt sqrt new for ring changes
These changes are related to inputs ppsphor1.cin etc.
and brsp1less.cin:
s 50 100 250 300
s -100 110 200 80
p 0 150
p 0 100

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris 868b27e970 bug fix for pssp brsp1less.cin in ring
Fix for input brsp1less.cin validity problem:
s 50 100 250 300
s -100 110 200 80
p 0 150
p 0 100

Incircle predicate (A, AB, F, E) is now ZERO.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris 2d1d601ffe use refs in ring pssp predicate
Also, reuse some code.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris 75b45ba931 fixes to make pssphor2.cin work in ring case
This returns ZERO (instead of POSITIVE) in some pssp incircle tests
like in the case of input pssphor2.cin:
s -100 -50 50 100
s 100 0 100 -100
p 0 0

Similar changes have to be made to the sqrt new code.

This will probably break some inputs like brsp1less.cin:
s 50 100 250 300
s -100 110 200 80
p 0 150
p 0 100
and pps predicates should be changed too.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris 1c4985c326 clean-up and simplification in ring pss
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris ca6aa27eee bug fix for compute_pos_45_line_at
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris d53af0382a fix of pss ring with points_inside_touching_sides
Change of function point_inside_touching_sides (renamed
to points_inside_touching_sides) in order to process correctly
inputs like br80.cin:
s       10      120     60      20
s       60      40      70      60
s       30      110     100     40

(segments AB, CD, EF, respectively)

The incircle predicate (CD, B, F, EF) returns 0.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:35 +02:00
Panagiotis Cheilaris 25952ab183 use s1, s2 refs to simplify pss ring code
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris 2e652509cb use refs instead of pointers in vring pss
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris 95721c8422 fix for 3segstepnosegbef.cin pss predicate
This fixes a bug with input 3segstepnosegbef.cin:

s -50 50 50 -50
s 0 50 0 100
p 50 0

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris dfb7212f47 rearrange some assertions in sqrt new
I also added a new assertion that has to be checked more.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris c1e7fac2f5 rearrange some compute_sss endp tests in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris f46bf86ee7 use inline compute_sss_bisectors function
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris c646b6ff30 make hor/ver predicates inline
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris de4fd180ef remove unused n and c variable warnings
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris 05389da3d8 replace *0.5 with /2 in FT bisector computations
This fix is to avoid the following warning when Gmpz is used:

CGAL warning: check violation!
Expression : is_integer(d)
  File       : /Users/philaris/code/mycgal/Number_types/include/CGAL/GMP/Gmpz_type.h
  Line       : 102
  Explanation: Gmpz constructed from non-integer double value

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:34 +02:00
Panagiotis Cheilaris 20a6206a03 fix for compute_pps nonendp vertical
Fix for input ppsnonendpver.cin:
p 20 0
p 60 0
s 0 -80 0 80
p 40 40

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris e479f3fa33 sqrt new compute_pps nonendp h/v
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris 3d8489cf6b remove unused variable qpar in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris 66eaf13e0c ring compute_pps nonendp h/v case
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris a786a5e235 horseg_y_coord and verseg_x_coord functions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris 84a2a701ff are_in_same_open_halfspace_of assertion in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris e74c1fa436 add are_in_same_open_halfspace_of for assertions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris f24867858b sqrt new compute_pps_endp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:33 +02:00
Panagiotis Cheilaris 26c967b0db vertex ring compute_pps_endp
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 03a66ee5e1 warning fix in hv Vertex_conflict_C2.h
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 52c6e3138a use variables in ring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 5ce9700141 more changes for warning suppression
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 137898e952 remove Voronoi_vertex_ring_C2.h variable warnings
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 2135db7159 remove dista, distb warnings
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 0b0653a36e remove dy pointer warning
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris a41c1b105b remove qref related warnings
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris 96cdb0e91d remove closest point warning from some compilers
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:32 +02:00
Panagiotis Cheilaris c908153a6f remove has_lseg_neg_slope and simplify logic
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris 188f7bdfa8 f_i and g_i warning fixes (also with assertions)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris 112983a440 corrected is_nop, is_pon, etc. assertions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris af246ba5d8 put some assertion code into debug code
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris 624a3d071e put first_found_f2 in assertions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris 1bbc871009 fix typo fi -> g_i
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris dc8c6cf0f1 remove unused type definition
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris f6741c6a04 change some CGAL_SDG_DEBUG to CGAL_assertion_code
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:31 +02:00
Panagiotis Cheilaris 3329b73e13 put some bool computations in debug mode only
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris 17ba6e5507 remove site computation warnings
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris 75f53e7007 put is_q_ssrc etc. in assertion code
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris fd1f51e987 remove warning for have_common_qr
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris fb53c58677 remove warnings with num counters
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris ac34b778de removed unused sv1 and sv2
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris 33061ecee2 use sitev only in verbose mode
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris 1db79df71c remove unused but set variable sss1
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris 87027f2125 g2 and esym put in assertions to suppress warnings
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:30 +02:00
Panagiotis Cheilaris e5247dda4c removed too-strong assertions in infinite edge cf
This fixes an assertion failure for the input vbc1a.cin:
s 60  20 60 220
p 40 160
p 30  50
p 40  50

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris c14f3cd711 CGAL_SDG_VERY_VERBOSE used in printing diagram
Print the SDG Linf diagram if CGAL_SDG_VERY_VERBOSE is defined.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris 5e66a3f262 access outgoing direction through function
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris cc3c33d569 use the line optimization for parallel segments
Use the line optimization when computing the bisector of two
parallel segments.

This also fixes a bug for inputs of the following form:

s 100 20 0 20
s 0 80 100 80
s 30 40 30 60

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris cc2c3e69d0 support line optimization in first intersection
Addition of is_line_optimization boolean member variable in object
of class Polychainline_2. Suppose this variable of an obect is set
to true. If this object is tried for an intersection with another
Polychainline object pcl, using the function
first_intersection_point_with, then instead the function
line_first_intersection_point_with is used.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris ff949fd5f7 show debug message for compute_sss in vring
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris cbf199c252 bug fix in debug message for a bisector
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris 38330bc91f show in debug message hom. point ip
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:29 +02:00
Panagiotis Cheilaris 71f4e6f9e7 oscandidate fix in vertex conflict pss predicate
The oscandidate fix was not in the incircle_pss predicate, but it was
in the incircle_sps predicate.

This fixes a bug for the following input (br60parplus.cin):

p 50 0
s 0 0 200 -30
s 0 0 -50 150

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:28 +02:00
Panagiotis Cheilaris 47b229322c sdg-voronoi-edges-exact example in CMakeLists.txt
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:28 +02:00
Panagiotis Cheilaris dfe343b15c example with exact computation for SDG Linf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:28 +02:00
Panagiotis Cheilaris 8a344da8ea assertion tests in sdg-voronoi-edges example
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:28 +02:00
Panagiotis Cheilaris e47b40bcfe vring PPS case fix from vsqr code
This fixes exact computation for inputs like parpar2.cin:

s -250 50 -50 -150
p -100 -50
p -60 -50
p -150 50

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:28 +02:00
Panagiotis Cheilaris cd550e1609 check for candidates in SSS in vring
This corrects exact computations for inputs like br61.cin:

s 0 0 200 -30
s 0 100 100 100
s 0 100 0 0
s 0 0 50 0

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:28 +02:00
Panagiotis Cheilaris eb9d901ebb prepare refinement for incircle_p SSS
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:28 +02:00
Panagiotis Cheilaris a103ffaef9 test in vring for LARGER point retval
Now, exact computation is correct with input like br80pt.cin:

s	10	120	60	20
s	30	110	100	40
p	60	40

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:28 +02:00
Panagiotis Cheilaris 50ad76dcd2 adapt part of pss vsqr code to vring
This fixes exact computation for input br61vpqr.cin:

s 0 0 200 -30
s 0 100 0 0
p 50 0

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:28 +02:00
Panagiotis Cheilaris 5ec2694760 adapt some PPS vsqr code to vring
This fixes input 2a1badaless3noint.cin for exact number types:

s 0 0 200 -30
s 0 0 -50 150
p 0 100
p 100 100

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:27 +02:00
Panagiotis Cheilaris 8ad9d9a709 comment out too-strong assertion from vsqr
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:27 +02:00
Panagiotis Cheilaris 86326fd03e count and show number of neighbors
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:27 +02:00
Panagiotis Cheilaris 761f6f720b removal of too-strong assertion in iecf
This is a fix for the following input (r2minpt.cin):

s -91 36 36 87
p -23 4
p -17 37
p -17 40

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:27 +02:00
Panagiotis Cheilaris 14c220e670 fix of debug message (q->r)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:27 +02:00
Panagiotis Cheilaris 65fdf43fd1 in vsqr check for same_slope_at_corner
Avoid computing a predicate for the support line of a query segment,
if that segment has a common endpoint with another segment and this
endpoint also defines the vertex and also the two segments have the
same slope. In that case, the sl value should be ZERO.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:27 +02:00
Panagiotis Cheilaris 4d8b3c020f show sl value in debug message
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:27 +02:00
Panagiotis Cheilaris 6132650bd6 have_same_slope predicate
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:27 +02:00
Panagiotis Cheilaris 287612533d choose segment direction with distance
Use the most distant point to choose segment direction in
the bisector of two segments computation.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:26 +02:00
Panagiotis Cheilaris 9208ebfbd7 return SMALLER in linf_refine, only for h/v lines
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:26 +02:00
Panagiotis Cheilaris b65c265d51 set on oriented boundary, when endpoint
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:26 +02:00
Panagiotis Cheilaris b086dfd879 show cmplabsxy value in debug
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:26 +02:00
Panagiotis Cheilaris 9ff68f92ce show sl in a debug message
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:26 +02:00
Panagiotis Cheilaris 926f5ec0ca change type of numpts_in_pqr to unsigned int
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:26 +02:00
Panagiotis Cheilaris ef23e1a490 validity test simplification
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:26 +02:00
Panagiotis Cheilaris 1f5df0aad8 if endpoint of segment, then ON_ORIENTED_BOUNDARY
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:26 +02:00
Panagiotis Cheilaris 2d852f3e31 SDG Linf insertion function from SDG L2
These new insert functions are from the SDG L2 code and will be
useful for the test_sdg_new_range_api test for the SDG Linf code.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:26 +02:00
Panagiotis Cheilaris dc55fd82f2 ipescript ipe2plg converts ipe to plg format
The script ipe2plg converts all paths and points
in the first page of the ipe file given as the command
line argument to the polygon .plg format of CGAL.
The result is printed to the standard output.
Use redirection to save to a .plg file.

The file ipe2plg.lua has to be put in the appropriate
place, e.g., ~/.ipe/scripts/ and here is an example use:

ipescript ipe2plg test1.ipe > test1.plg

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:25 +02:00
Panagiotis Cheilaris 057f581e83 insert_point_on_segment correct neighbors
This fixes the computation of neighbors for
insert_point_on_segment and is the same as the
insert_exact_point_on_segment fix.

Here are some inputs that are affected.

(5sqin.cin)

s 0 0 0 100
s 0 100 100 100
s 100 100 100 0
s 0 0 100 0
s -100 50 150 50

(lala3.cin)

s 1 2 3 2
s 13 25 13 25
s 27 24 54 24
s 43 31 43 35
s 41 51 71 51
s 57 93 57 141
s 75 117 96 117
s 143 95 143 143
s 81 162 117 162
s 101 171 101 211
s 189 156 222 156
s 219 123 219 219
s 121 199 199 199
s 229 159 229 229
s 156 186 246 186

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:25 +02:00
Panagiotis Cheilaris 4060e41f69 insert_point_on_segment neighbor assertion
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:25 +02:00
Panagiotis Cheilaris d67b1987f7 check correct number splitting site neighbors
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:25 +02:00
Panagiotis Cheilaris c734497e6e insert_exact_point_on_segment correct connection
I might have to do the same with insert_point_on_segment.

This fixes a bug in the validity check of diammid1.cin:
s -200 0 0 200
s 0 -200 200 0
s -200 0 0 -200
s 0 200 200 0
p 100 100
p -100 -100
p 100 -100
p -100 100

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:25 +02:00
Panagiotis Cheilaris 05289ca9b9 set otherf and f_i
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:25 +02:00
Panagiotis Cheilaris dac4146698 debug show otherf, f_i, otherg, g_i
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:25 +02:00
Panagiotis Cheilaris b4cae70cce debug message about flips_nop and flips_pon
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:24 +02:00
Panagiotis Cheilaris a5d6cafd79 strong check of easy degenaracies
This fixes a bug in validity check of ipe10gperm.cin:

s	10	120	60	20
s	30	110	100	40
s	60	40	70	60

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:24 +02:00
Panagiotis Cheilaris 2abab31e98 return zero for equivalent points
This avoids a ping-pong effect in the PSSP case.

It fixes the validity check of the following input br50noseg.cin:

s -50 -20    0 +30
s   0 +30  +50 -20
p -20   0
p +20   0

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:24 +02:00
Panagiotis Cheilaris c56a0a004d in PSSP case check fast: t endpoint of hv segment
This is to fix validity checks of inputs like (rx8m8var.cin):

s -11 82 -11 4
p 58 60
p 89 1
p -11 16
s -11 16 89 1

This fixes the validity check of point t = p -11 82.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:24 +02:00
Panagiotis Cheilaris 25c8765c5e print message for r too
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:24 +02:00
Panagiotis Cheilaris 8cb21ad305 better debug message in vring (show segments)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:24 +02:00
Panagiotis Cheilaris 86294a01b2 in PSSP case check fast: t is endpoint of segments
This is to fix validity checks of inputs like (rx8m8var.cin):

s -11 82 -11 4
p 58 60
p 89 1
p -11 16
s -11 16 89 1

This fixes point t = p -11 16, but I still have to fix
point t = p -11 82.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:24 +02:00
Panagiotis Cheilaris 2edced7122 format better debugging messages
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:24 +02:00
Panagiotis Cheilaris 5af17c6a3e removal of two too strong assertions
The following inputs had problems before this fix:

(s2.cin)
s -100 50 200 -100
p 0 100
p 0 150
p 0 0

(s2hor.cin)
s -100 50 200 -100
p 100 0
p 150 0
p 0 0

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:24 +02:00
Panagiotis Cheilaris 5ffb9e29dc use of new tie breaking predicates
Many changes to support the tie breaking predicates
in the implementation and the declaration part of
the algorithm class.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:23 +02:00
Panagiotis Cheilaris 1980d9d31b tie breaking versions of oriented_side predicates
They have an additional point dummy argument in class
Oriented_side_C2.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:23 +02:00
Panagiotis Cheilaris ce499e0e4b compute f0_no, f0_op, f0_po, f0_on in split
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:23 +02:00
Panagiotis Cheilaris b7b6e13a91 remove tie-breakers in Oriented_side_C2
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:23 +02:00
Panagiotis Cheilaris 9e638f78b7 validity check fix for vring code
This fixes validity checking for spl1.cin input (and others):
s -100 110 200 80
s 200 80 -110 -190
p 0 0
p 0 100

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:23 +02:00
Panagiotis Cheilaris dd3c65ccb3 inside sides point checking and fix for validity
I added point_inside_touching_sides_v function
in vsqrnew code, which is an adaptation of the
respective vring code.

This fixes, among other things, the validity checking
of input ppswedge.cin:
s -200 -200 0 0
s -200 200 0 0

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:23 +02:00
Panagiotis Cheilaris b6ae8e5e7e check also for hqref of segment
The check for point t against a segment s is too
strong at the moment. I have to implement a predicate
similar to point_inside_touching_sides of the ring code.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:23 +02:00
Panagiotis Cheilaris 6bf9993ef4 remove a return zero just after checking point p
Before this fix, the point t was not tested at all with
segments q or r.

This fixes a bug for input (v4nox.cin):

s 100 100 300 300
s -100 110 200 80
p 0 150

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:23 +02:00
Panagiotis Cheilaris c859b91a72 check point_inside_touching_sides
If point t is inside any of the two sides of the square
that touch the touching corner of a segment s in p, q, r,
then return negative.

Use helper function point_inside_touching_sides.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:22 +02:00
Panagiotis Cheilaris f02dc5e1c3 compute positive or negative slope 45 degree lines
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:22 +02:00
Panagiotis Cheilaris 49c42babc5 debig message for zero return value in q: segment
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:22 +02:00
Panagiotis Cheilaris 7385566aa8 tie-breaker for finite vertex Oriented_side_C2
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:22 +02:00
Panagiotis Cheilaris ac272f4e67 rename proj_of_infv to testpnt in Oriented_side_C2
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:22 +02:00
Panagiotis Cheilaris 6b24bd98ad debug: show inf Oriented_side zero override
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:22 +02:00
Panagiotis Cheilaris a592ff776b count nop and pon zeros in find_faces_to_split
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:22 +02:00
Panagiotis Cheilaris 6771413f74 move os0_fc_start setting just after os setting
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:22 +02:00
Panagiotis Cheilaris b260448f11 debug: print results at end of find_faces_to_split
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:22 +02:00
Panagiotis Cheilaris f443754b00 first found f1 or f2 assertions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:21 +02:00
Panagiotis Cheilaris d513c40258 new face_output function in impl SDG Linf class
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:21 +02:00
Panagiotis Cheilaris 7dcc367d36 assertions on f1_0, f2_0 for splitting
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:21 +02:00
Panagiotis Cheilaris 9878e2f566 fix in pqrt when t is on same side as p
In pqrt, if points p and t are on the same side of
the square, if t is further in the tie break, then
return POSITIVE.

This is a bug fix for this input (1asegverp2nocrminus.cin):
s 0 100 200 80
p 0 60
p 0 80

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:21 +02:00
Panagiotis Cheilaris 352b3c47f0 debug: show when diffdvpx=diffdvtx
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:21 +02:00
Panagiotis Cheilaris f81ca24f1b endpoint of segment code completion
case of predicate pqrt of type PPSP:
if new point t is on the same side of line pq
as the other endpoint of r, then NEGATIVE, else POSITIVE.

This fixes inputs of the following form (zppsp1.cin):
s -100 50 0 0
p 100 0
p 0 100

With the fix, point p 0 0 has as neighbors both
p 100 0 and p 0 100. Before, p 0 100 was not a neighbor.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:21 +02:00
Panagiotis Cheilaris e3a376ebab assertion of PPS in r non-hv with endp case
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:21 +02:00
Panagiotis Cheilaris aefe08b079 new case for non-hv r with endpoint p or q
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:21 +02:00
Panagiotis Cheilaris 2e93da418e parallel parabolae code only if segment is free
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:20 +02:00
Panagiotis Cheilaris b834b906f2 move endpoint of hor/ver segment inside refinement
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:20 +02:00
Panagiotis Cheilaris 691462d730 segment p implies segment q in incircle_p
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:20 +02:00
Panagiotis Cheilaris 2278574d75 r is segment anyway in incircle_p with type
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:20 +02:00
Panagiotis Cheilaris f825285753 typo fixed (missing << operator)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:20 +02:00
Panagiotis Cheilaris 610af56d2d assertions and debugging for endpoints
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:20 +02:00
Panagiotis Cheilaris 48a4eb85b8 check also if q is endpoint of r
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:20 +02:00
Panagiotis Cheilaris 6cd66c47fb debug message for return of zero
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:20 +02:00
Panagiotis Cheilaris 8d8474bd81 make flipf and flipg always false
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:20 +02:00
Panagiotis Cheilaris f5b3ca021f back to simple Oriented_side_C2 predicate
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:19 +02:00
Panagiotis Cheilaris dd6182f47f do the whole cycle if fc_start gas os=0
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:19 +02:00
Panagiotis Cheilaris ee6cac0392 print neighbors in verbose SDG output
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:19 +02:00
Panagiotis Cheilaris 36e5229170 look for f1_0 and f2_0 in main impl loop
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:19 +02:00
Panagiotis Cheilaris 6501d264d9 check if f1 or f2 is found first
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:19 +02:00