Commit Graph

60247 Commits

Author SHA1 Message Date
Sandeep Kumar Dey 8df7354020 vertex conf and finite edge conf modified
In Vertex conf pqt case
we can have infinite vertex even if p is not endpoint of q
and so previous assertion is removed, and the case is included
when p is not end point of q, and we check for the conflict
due to insertion of t
In Finite edge conf for p,q,t,sgn functor
we removed the assertion of p is endpoint of q,
and included the case when p is not end point of q
and check for the conflict with t
This solves the test case h2.cin
2015-06-30 10:30:49 +02:00
Sandeep Kumar Dey 28bc4f762a line bisector direction
The direction of bisector between a
vertical segment and point is modified.
2015-06-30 10:30:49 +02:00
Sandeep Kumar Dey ced5923eb6 infinite edge conf updated
In q,r,s,t, when both r and are end points of q,
and sgn is positive, it should return true,
as partially the inf edge is in conflict
2015-06-30 10:30:49 +02:00
Sandeep Kumar Dey fe2e59a2b9 Incircle_p pqt is updated
point-segment case is modified,
 one of p and q is point and the other is segment
 and t is point.
2015-06-30 10:30:48 +02:00
Sandeep Kumar Dey 76ce8e21b5 debug enabled in demo 2015-06-30 10:30:48 +02:00
Panagiotis Cheilaris 3c93b074f2 simplified general Linf VD segment ipelet 2015-06-30 10:30:48 +02:00
Panagiotis Cheilaris 40da454a07 update draw in general SDG Linf
I also update in the general (not necessarily axis-parallel segment)
case code the drawing (draw_dual_edge). Hopefully, ipelets will be
simplified.
2015-06-30 10:30:48 +02:00
Panagiotis Cheilaris 654aa211df update general Linf polyline to draw components
I also change the general Linf code.
2015-06-30 10:30:48 +02:00
Panagiotis Cheilaris 24893fe941 trailing whitespace removal in polychain code 2015-06-30 10:30:48 +02:00
Panagiotis Cheilaris 4bad319fcb draw components of polyline in draw_dual_edge 2015-06-30 10:30:48 +02:00
Panagiotis Cheilaris 7e635801fd support for drawing polylines in any stream
The drawing is done by pushing in a stream the constituent
segments and rays of a polyline. The code is almost identical
to the QT drawing code.

It will be used to simplify drawing operations in ipelets.
2015-06-30 10:30:48 +02:00
Sandeep Kumar Dey 7cd8e3714a Indentation fix 2015-06-30 10:30:48 +02:00
Sandeep Kumar Dey 74580c14c8 removed compiler warnings
we added assert false and return statements,
The function should not reach these locations.
2015-06-30 10:30:47 +02:00
Sandeep Kumar Dey 6f2ce90a62 incircle_p pqt with one site point and one segment
pqt case is handled properly the conflicts
are changed because of choice of new bisectors
Line 364 when one of p or q is a point
and the other is a segment, with query t = point
2015-06-30 10:30:47 +02:00
Sandeep Kumar Dey 327e6eb2c2 Inf edge conflict qsrt
s and r are end points of q
and t is point
This case should always return false
2015-06-30 10:30:47 +02:00
Sandeep Kumar Dey e826712740 Removed the case of general segment
Incircle_pps and Incircle_sps
In these cases the general segment cases are removed.
Incircle_pss case also needs updation, it should be more simplified.
2015-06-30 10:30:47 +02:00
Sandeep Kumar Dey 3299267643 Coordinates are replaced by Point_2
This is done in incircle test,  when query site t is segment
2015-06-30 10:30:47 +02:00
Panagiotis Cheilaris 454c5db99c examples files for axis-parallel SDG 2015-06-30 10:30:47 +02:00
Panagiotis Cheilaris 710a864b23 demo files for axis-parallel SDG 2015-06-30 10:30:47 +02:00
Panagiotis Cheilaris 0c1fd5ee3b demo resource files for axis-parallel SDG 2015-06-30 10:30:47 +02:00
Panagiotis Cheilaris d59aa78d0c include files for axis-parallel SDG 2015-06-30 10:30:46 +02:00
Panagiotis Cheilaris 569af6d4d3 FVD L2 diagram from a single polygon input
I also added the debug defs in the ipelets.
2015-06-30 10:30:46 +02:00
Sandeep Kumar Dey 1fad3967d5 Added CGAL_SDG_DEBUG at Line 539 2015-06-30 10:30:46 +02:00
Sandeep Kumar Dey 236a763293 Enable/Disable Debug Messages
This is important as it helps to
measure run-time of functions
in the code excluding the time to
print debug messages on the console
We added following piece of code:
//#define CGAL_SDG_VERBOSE

//#ifndef CGAL_SDG_VERBOSE
//#define CGAL_SDG_DEBUG(a)
//#else
//#define CGAL_SDG_DEBUG(a) { a }
//#endif

If the macro CGAL_SDG_VERBOSE is enabled
then we will get all the debug messages
and if it is disabled then there will be no
debug messages
2015-06-30 10:30:46 +02:00
Panagiotis Cheilaris a71f89889a removed validity checking in sdg-voronoi-edges 2015-06-30 10:30:46 +02:00
Panagiotis Cheilaris 57a37e5dff assertions for fecf pqt 2015-06-30 10:30:46 +02:00
Sandeep Kumar Dey 9af976d7d0 Finite edge conflict(p,q,t)
if t does not intersect the wedge as defined by
intersects_segment_interior_inf_wedge_sp(p,q,t)
then return true
2015-06-30 10:30:46 +02:00
Sandeep Kumar Dey d34935a01e Finite edge interior conflict
we added a case when p or q
can be end point of t(segment)
example
debug finite-edge-int-cf tocheck (p,q,r,t,sgn)= (s AB) (p D) (p B (r ignored)) (s CD)  -1 retval= 0
interior in conflict (cf) = 0
This should return true
2015-06-30 10:30:46 +02:00
Panagiotis Cheilaris 76266e6ef1 separate vertical/horizontal assertions 2015-06-30 10:30:45 +02:00
Panagiotis Cheilaris 301f7342ce fixed indentation by removing tabs 2015-06-30 10:30:45 +02:00
Sandeep Kumar Dey 377a8895c5 minor changes
ternary operator ? is changed into if-else
Line 887 in Finite edge conflict
assertions of horizontal and vertical segment is added
in Line 1050 in Basic predicate
2015-06-30 10:30:45 +02:00
Sandeep Kumar Dey 01fd99ae5e Bug fix for test1.cin
In Finite Edge interior conflict
the basic predicate intersects_segment_interior_inf_wedge_sp
is called depending on the p.is_point()

In basic predicate
intersects_segment_interior_inf_wedge_sp
the assertions is horizontal and is vertical is
removed temporarily, need to add later
2015-06-30 10:30:45 +02:00
Sandeep Kumar Dey 356018f5f4 Bug Fixed FEC ()pqrt
In finite edge interior conflict
when t is segment,
and it not intersected by the wedge
defined by s and p in the basic predicate
intersects_segment_interior_inf_wedge_sp
then return false
2015-06-30 10:30:45 +02:00
Sandeep Kumar Dey ffc70c5408 Added CGAL assertions
To make the basic predicate:"intersects_segment_interior_inf_wedge_sp"
more robust and specific
we added the following assertions:
CGAL_assertion( t.is_segment() );
CGAL_assertion( s.is_segment()
                     and (not s.is_horizontal())
                     and (not s.is_vertical()) );
CGAL_assertion( os_lseg_p != ON_ORIENTED_BOUNDARY );
2015-06-30 10:30:45 +02:00
Sandeep Kumar Dey e5f31ee9f4 Point_2 replaced by Site_2
We use Site_2 instead of Point_2
to make it more general and we can add
more functionalities later on.
2015-06-30 10:30:45 +02:00
Sandeep Kumar Dey 1979efd08f BasicPred intersects_segment_interior_inf_wedge_sp
This predicate returns true if and only if
the interior of t has non-empty intersection
with the interior of the following infinite box:
the only finite corner of the infinite box is p
and this infinite box is a 90 degree wedge defined
by the intersection of the halfplanes
with supporting lines lhor and lver through p, where
the halfplanes are both on the positive or negative
sides of the supporting lines. The positive or negative
side depends on the relative position of p with respect to s
2015-06-30 10:30:45 +02:00
Sandeep Kumar Dey 538122d883 debug message added:
std::cout << "debug finite-edge-int-cf tocheck (p,q,r,t,sgn)= ("
        << p << ") (" << q << ") (" << r <<  " (r ignored)) ("
        << t << ")  "
        << sgn << " retval= " << true << std::endl;

std::cout << "debug finite-edge-int-cf pqrt retval= "
                        << true << std::endl;

These messages were added to check the output of finite edge conflict predicate
2015-06-30 10:30:45 +02:00
Sandeep Kumar Dey 38148ad9da missing semicolon in L928 Finite edge conflict 2015-06-30 10:30:44 +02:00
Sandeep Kumar Dey f01d4b31d3 Bug fix: when t is segment in finiteedgeconflict 2015-06-30 10:30:44 +02:00
Panagiotis Cheilaris a89fd2aa93 no warnings and 3 kernels in SDGLinf ipelet 2015-06-30 10:30:44 +02:00
Panagiotis Cheilaris a3959221e2 debug message in Voronoi_vertex_sqrt_field_new_C2 2015-06-30 10:30:44 +02:00
Panagiotis Cheilaris 7b690dd578 p, t are endpoints of different segments among q, r
In the incircle_p predicate of field_new,
check if p, t are endpoints of different segments among q, r.
This way, things work slightly better for inexact arithmetic.
2015-06-30 10:30:44 +02:00
Panagiotis Cheilaris bea2875f58 debug messages in field_new file 2015-06-30 10:30:44 +02:00
Panagiotis Cheilaris 020c643c72 more careful d2 computation in ring file
Now, the following input also works fine:

$ cat ~/code/geom/demo/Segment_Delaunay_graph_Linf_2/1a0star_target.cin
s 0 0  200  0
s 0 0 -200 -100
s -80 -130 0 0
2015-06-30 10:30:44 +02:00
Panagiotis Cheilaris a44a8f37d5 refined computation for PSS in ring case
I added refining in incircle_p_no_easy PSS case.

I also forced d1=0 in the case where t has common endpoint
with at least two segments among {p,q,r}. A similar adjustment
has to be done for d2. Maybe this change should also be applied
to the field_new file, but for the moment it does not seem needed.

Also, I did some white-space fixes.
2015-06-30 10:30:44 +02:00
Panagiotis Cheilaris 9f2f5bfbb2 debug messages for d1, d2 in field_new 2015-06-30 10:30:44 +02:00
Panagiotis Cheilaris 9c01d34d35 sdg-voronoi-edges.cpp: command line argument 2015-06-30 10:30:43 +02:00
Panagiotis Cheilaris 2e4a2916d9 sdg-filtered-traits.cpp: command line argument 2015-06-30 10:30:43 +02:00
Panagiotis Cheilaris 5e8cd80d8e site arguments for some intersection functions
I changed the arguments of some functions to be sites instead of
points. This way some same_points queries can take advantage of
the site information.
2015-06-30 10:30:43 +02:00
Panagiotis Cheilaris 7726c203a5 debug message in incircle_pps
Print out message when p is endpoint of t in incircle_pps.
2015-06-30 10:30:43 +02:00