Commit Graph

415 Commits

Author SHA1 Message Date
Guillaume Damiand 1d798839de Replace iword(CGAL::IO::mode) by get_mode 2016-03-09 10:37:57 +01:00
Sandeep Kumar Dey f3c602cad4 copyright info + license header 2015-07-03 01:39:55 +02:00
Panagiotis Cheilaris 0c135374cb clean up copyright messages 2015-06-30 10:32:11 +02:00
Panagiotis Cheilaris e1be73c05b do not use std::forward_as_tuple before MSVS2012 2015-06-30 10:32:11 +02:00
Panagiotis Cheilaris 9e15338ffc fix otherpnt sdglinf warning 2015-06-30 10:32:11 +02:00
Panagiotis Cheilaris 5b413d92a4 fix warning in Vertex_conflict_C2 with otherpnt 2015-06-30 10:32:10 +02:00
Panagiotis Cheilaris 142414c123 sdglinf CGAL_USE for Release warning fixes 2015-06-30 10:32:10 +02:00
Panagiotis Cheilaris 0db2dd8573 sdglinf ring avoid conversion of Sign to bool 2015-06-30 10:32:10 +02:00
Panagiotis Cheilaris 30b1e34894 avoid conversion of Sign to bool in sdglinf 2015-06-30 10:32:10 +02:00
Panagiotis Cheilaris 47383a4944 sdglinf avoid min max macro expansion 2015-06-30 10:32:10 +02:00
Panagiotis Cheilaris 4ab50824ff assertion for some are_same_points in sdglinf 2015-06-30 10:32:09 +02:00
Panagiotis Cheilaris ae2b1299eb remove is_endpoint_of from sdglinf vv ring 2015-06-30 10:32:09 +02:00
Panagiotis Cheilaris eb17b2a3a2 remove warning: CGAL_USE in sdglinf 2015-06-30 10:32:09 +02:00
Panagiotis Cheilaris bafb11da0c remove warning: now n_faces is unsigned int 2015-06-30 10:32:09 +02:00
Panagiotis Cheilaris 341d158a3f change word logical operators in sdglinf include 2015-06-30 10:32:08 +02:00
Panagiotis Cheilaris 2f3f3d0885 remove sdglinf parameter warnings 2015-06-30 10:32:08 +02:00
Panagiotis Cheilaris c89df09967 remove sdglinf hv include files
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:32:07 +02:00
Panagiotis Cheilaris 304dc76a36 use a tag for Linf bisector constructions
Instead of the type Has_bisector_constructions_type that relied on
SFINAE for choosing bisectors, use Tag_has_bisector_constructions
tag which is typedef'ed to be Tag_true for Linf traits.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:58 +02:00
Panagiotis Cheilaris b6044ee297 Linf hierarchy copy and assignment
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:58 +02:00
Panagiotis Cheilaris 91cb090fe1 add some constructors for Linf hierarchy
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:58 +02:00
Panagiotis Cheilaris 07ebeea064 derive Linf2 from L2 (hierarchy definitions)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:57 +02:00
Panagiotis Cheilaris bfc7683db9 Linf2 algorithm implementation changes
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:57 +02:00
Panagiotis Cheilaris 69e65d8e21 use NULL instead of nullptr in Linf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:57 +02:00
Panagiotis Cheilaris 948dba11b3 Segment_Delaunay_graph_Linf_2 copy and assignment
Define copy constructor and assignment operator using
respective base class constructor/operator.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:57 +02:00
Panagiotis Cheilaris 38321dc2c3 point to function, only with intersections
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:57 +02:00
Panagiotis Cheilaris f2386323a4 fix calling insert method from Base
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:57 +02:00
Panagiotis Cheilaris 789fa261c3 setup Linf insert on segment functions
This change requires a change in the base class of the Linf
algorithm to support the insert_point_on_segment_ptr and
insert_exact_point_on_segment_ptr function pointers.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:57 +02:00
Panagiotis Cheilaris a88e1dff7c print face in Linf algorithm definition
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:57 +02:00
Panagiotis Cheilaris bc1155935d add Linf tiebreaker definitions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:56 +02:00
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 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 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 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 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 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