Commit Graph

64306 Commits

Author SHA1 Message Date
Panagiotis Cheilaris aa1eacbb18 name change in interior of ipelet 2015-06-30 10:30:58 +02:00
Panagiotis Cheilaris c761d5039b move sdgap to svdlinf in main ipe directory 2015-06-30 10:30:58 +02:00
Panagiotis Cheilaris 831893a868 make some messages similar in general and hv 2015-06-30 10:30:58 +02:00
Panagiotis Cheilaris b33e4bde6d predicates for hv traits 2015-06-30 10:30:58 +02:00
Panagiotis Cheilaris b47c1603ee support files for hv traits 2015-06-30 10:30:58 +02:00
Panagiotis Cheilaris 67755ae70f high level hv traits 2015-06-30 10:30:57 +02:00
Panagiotis Cheilaris d3cf7dc324 Segment_voronoi_2-hv program source 2015-06-30 10:30:57 +02:00
Panagiotis Cheilaris 259c4167d6 typedefs for SVD Linf hv 2015-06-30 10:30:57 +02:00
Panagiotis Cheilaris 4c36db56e7 two programs in CMakeLists.txt
Segment_voronoi_2 and Segment_voronoi_2-hv
2015-06-30 10:30:57 +02:00
Panagiotis Cheilaris d807c4830f more subclassing 2015-06-30 10:30:57 +02:00
Panagiotis Cheilaris 6fe808b94b filtered traits subclassing
There is a lot of private parts, so a lot of code
is copied related to SDG L2.
2015-06-30 10:30:57 +02:00
Panagiotis Cheilaris 34d065ca9a non-trivial subclassing for traits base 2015-06-30 10:30:57 +02:00
Panagiotis Cheilaris 243dc68e94 file with trivial subclassing 2015-06-30 10:30:57 +02:00
Panagiotis Cheilaris 55c622be44 start to use subclassing for SDG Linf
A thorough clean up of reused code.
The next step is to do the subclassing.
2015-06-30 10:30:57 +02:00
Panagiotis Cheilaris d33c26d719 do not use supporting site in split face 2015-06-30 10:30:56 +02:00
Panagiotis Cheilaris 543044f178 fix assertion to also use supporting site 2015-06-30 10:30:56 +02:00
Panagiotis Cheilaris 8b22f0e86d more debug info in implementation 2015-06-30 10:30:56 +02:00
Panagiotis Cheilaris b5d2e68d6e debug message in Oriented_side_C2 for Linf 2015-06-30 10:30:56 +02:00
Panagiotis Cheilaris ec6b2f6563 always reuturn POSITIVE in a pqt conflict test 2015-06-30 10:30:56 +02:00
Panagiotis Cheilaris c1ad35d1b9 a different explanation for a pqt conflict
When p and q are points and are consecutive on
the convex hull, then a segment t that is horizontal
or vertical and does not have p and q as its endpoints
can not get between p and q in the convex hull BEFORE
t's endpoints.
2015-06-30 10:30:56 +02:00
Sandeep Kumar Dey 2195016681 Vertex_conflict
Vertex_conflict(pqt)
pps case,
when the points p, q are not on t,
we should return POSITIVE.
2015-06-30 10:30:56 +02:00
Sandeep Kumar Dey fc592fe79a Vertex_conflict pps case
Vetex_conflict(pqt) pps case
p is enpt of t or q is endpt ot t
is reverted back.
(
return (o == RIGHT_TURN) ? NEGATIVE : POSITIVE;
)
2015-06-30 10:30:56 +02:00
Sandeep Kumar Dey 05998fd5f4 Vertex_conflict pps case
Vertex_conflict(pqt) In pps case:
if p is endpt of t or q is endpt of t
Point_2 pt = is_p_tsrc ? t.target() : t.source();
Orientation o = CGAL::orientation(p.point(), q.point(), pt);
return (o == RIGHT_TURN) ? POSITIVE : NEGATIVE;
We have also added debug messages to check p,q,t and o.
2015-06-30 10:30:55 +02:00
Sandeep Kumar Dey f8ccc944b8 Removal of compiler warnings 2015-06-30 10:30:55 +02:00
Sandeep Kumar Dey 87cd8321d4 generate non intersecting segments 2015-06-30 10:30:55 +02:00
Panagiotis Cheilaris 17b7ec7ffd fix for an infinite edge conflict
Here is the problematic input:

$ cat ~/Dropbox/cgal/demo/Segment_Delaunay_graph_Linf_2/September/29sept2seg1pt.cin
s -200 -100 200 100
p 200 -50
s 220 90 -130 -90
2015-06-30 10:30:55 +02:00
Sandeep Kumar Dey 1f2a84d650 Generate random axis parallel segments
Non intersecting axis parallel segments
2015-06-30 10:30:55 +02:00
Panagiotis Cheilaris c4bd75e476 addition of skeleton in sdgap ipelet 2015-06-30 10:30:55 +02:00
Sandeep Kumar Dey f5c277c735 vertex conflict
cases removed
Incircle pqt
p or q is segment and is not h or v
Incircle_pps
t is not h or v
Incircle_sps
p is not h or v
Incircle_pss
q is not h or v
2015-06-30 10:30:55 +02:00
Sandeep Kumar Dey e4d6ce6b7f inf-edge-conf removed code
inf-edge-conf q,s,r,t,sgn
removed case (in all cases it was asserted segment is h or v)
1: when t is not h or v
2: q is not h or v
3: here point q is not endpoint of segment s
CGAL_assertion(sgn == NEGATIVE);
CGAL_assertion(not (s.segment().is_horizontal() or
                    s.segment().is_vertical() ));
2015-06-30 10:30:55 +02:00
Sandeep Kumar Dey ef3dbf9a11 Removed assertion segment hor or ver from fec
Following code is removed from fec:
fec:p q r t sgn
for sgn = POSITIVE
// p is not endpoint of q
CGAL_assertion( not ( q.segment().is_horizontal() or
                      q.segment().is_vertical() ) )
p is point and q is segment
same for p segment and q point
fec: p,q,t,sgn
case: one of p, q is segment,
removed the portion of code after cgal assertion of h or v
2015-06-30 10:30:55 +02:00
Panagiotis Cheilaris 68ac53737b reseting back to general SDG Linf
The segment and its endpoint bisector is again a perpendicular
line and not the V-shaped bisector.
2015-06-30 10:30:54 +02:00
Panagiotis Cheilaris 0c428b70f8 better return value reporting 2015-06-30 10:30:54 +02:00
Panagiotis Cheilaris b51cf2d5dc make implementation uniform in sdgap and general 2015-06-30 10:30:54 +02:00
Panagiotis Cheilaris 3affbd04b8 make sdgap and general uniform in include/CGAL 2015-06-30 10:30:54 +02:00
Panagiotis Cheilaris fc2575c0e4 program print-sdg for SDG general Linf 2015-06-30 10:30:54 +02:00
Sandeep Kumar Dey 2c8ffeadbe PPS case vertex computation
The two point have same x or same y coordinate.
h4a.cin and h4b.cin is resolved.
2015-06-30 10:30:54 +02:00
Panagiotis Cheilaris eb6218ef3d program that prints SDG L2 details 2015-06-30 10:30:54 +02:00
Panagiotis Cheilaris 124f818c23 Menelaos code with file_output_verbose print 2015-06-30 10:30:54 +02:00
Panagiotis Cheilaris 3365d48d3a SDG general Linf demo shows verbose output 2015-06-30 10:30:53 +02:00
Panagiotis Cheilaris 004c03020f support for verbose print in general Linf SDG 2015-06-30 10:30:53 +02:00
Sandeep Kumar Dey 7e59eca349 inf-edge-conf q,s,r,t
For t = segment, it is not always false
When q is end point of both r and t,
and s is end point of t, we should return
true.
2015-06-30 10:30:53 +02:00
Sandeep Kumar Dey 08336a5f22 inf-edge-conf
when t is segment return false
2015-06-30 10:30:53 +02:00
Sandeep Kumar Dey c3efe226a6 vertex conflict pqt
p is point q is segment and t is segment
when this vertex conf is called it is called with
p segment,q point, t segment
incircle_s sps case
and we have updated the case
when t is segment and t and p has an endpoint,
and q is not on t, then it should return POSITIVE
2015-06-30 10:30:53 +02:00
Panagiotis Cheilaris 1b72a7ffbe move examples in specific directory 2015-06-30 10:30:53 +02:00
Panagiotis Cheilaris f40cedfc15 use print verbose function in print-sdg.cpp 2015-06-30 10:30:53 +02:00
Panagiotis Cheilaris 44c708402b print more detailed edges
Print pqrs notation for edge, but only when dimension
is greater than 1.
2015-06-30 10:30:53 +02:00
Sandeep Kumar Dey e1a87e5165 print voronoi edge 2015-06-30 10:30:53 +02:00
Sandeep Kumar Dey 0a873e6f7d Do not print inf vertex on convexhull
Replaced by a precondition
2015-06-30 10:30:52 +02:00
Sandeep Kumar Dey 96201ec87f print delaunay edge
The two vertices for an edge should be
e.first->vertex(sdg.ccw(e.second)),
e.first->vertex(sdg.cw(e.second))
2015-06-30 10:30:52 +02:00