Commit Graph

60457 Commits

Author SHA1 Message Date
Panagiotis Cheilaris f8c84e89d8 use lrbt pointers in Side_of_bounded_square_2
I also keep the old code, to try some assertions.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:13 +02:00
Panagiotis Cheilaris 738b2c6b36 show px_min, px_max, py_min, py_max debug messages
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:13 +02:00
Panagiotis Cheilaris 6a9cdb1069 make Side_of_bounded_square_2 functions inline
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:13 +02:00
Panagiotis Cheilaris 4817961cd5 debug message for touching sides of t in sidebs
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:13 +02:00
Panagiotis Cheilaris ea417f4842 use constant half in Side_of_bounded_square_2
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:13 +02:00
Panagiotis Cheilaris 4c9681e3fd shorten long lines in Side_of_bounded_square_2
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:13 +02:00
Panagiotis Cheilaris 629f05a8e1 use CGAL::compare in side of bounded square
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:13 +02:00
Panagiotis Cheilaris dc186b670e use bounded square first in vsqrtnew
For the case PPP for incircle_p, use the bounded side predicate
before the oriented side predicate.

A similar change should probably be done in vring, too.

The oriented side predicate makes a lot of tests that are irrelevant
for a finite PPP vertex.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:12 +02:00
Panagiotis Cheilaris 16d016dd65 benchmarks for Linf and L2 adapted from Menelaos'
The benchmarks do not support crossing segmetns.

The input should be fed from stdin and should
be in the the format of "p x y" or "s x1 y1 x2 y2"
per line. Do not give the total number of points
and segments in the first line (this is in contrast
with Menelaos' benchmark expected input).

Example input:
p 20 34
s 10 34 78 1
s 23 18 91 22

Example run:
n=600000 ;
 rbox $n D2 s B180 | tail -n $n | awk '{print "p " $1 " " $2 }' |
 time benchmark-linf

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:12 +02:00
Panagiotis Cheilaris 672a24ed4d slightly faster Side_of_bounded_square_2
Store the result of comparison of t with coordinates
of bottom left and top right point of square.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:12 +02:00
Panagiotis Cheilaris 9458afe15b removal of side of bounded square include
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:12 +02:00
Panagiotis Cheilaris 27e6b1112b point computation pushed inside debug
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:12 +02:00
Panagiotis Cheilaris d34cd07b7d whitespace fix of Side_of_bounded_square_2
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:12 +02:00
Panagiotis Cheilaris 1b8428a998 whitespace fixes in Side_of_oriented_square_2
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:12 +02:00
Sandeep Kumar Dey 68b61ac17a Assertion is removed
CGAL_assertion((l.perpendicular(vpqr).
                has_on_negative_side(vqps))or
                ((compare_x_2(vpqr, vqps) == EQUAL) and
                (compare_y_2(vpqr, vqps) == EQUAL)));
Example: This assertion is failed in 4seg.cin
s -196 109 -194 38
s -114 83 -6 83
s -7 67 -110 72
s -110 72 -114 83

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:12 +02:00
Panagiotis Cheilaris 4a8ab6100c assertion instead of test to make faster
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:12 +02:00
Panagiotis Cheilaris fb323b1a3c show more verbose validity messages only in debug
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:11 +02:00
Panagiotis Cheilaris 566c5a3023 removal of sdg benchmarks from examples CMakeLists
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:11 +02:00
Panagiotis Cheilaris a752730e6a CMakeLists for benchmarks SDG-Linf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:11 +02:00
Panagiotis Cheilaris 885cb46e4e typedefs for benchmarks (just copies)
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:11 +02:00
Panagiotis Cheilaris 87768c94e8 move SDG-Linf benchmarks to benchmarks directory
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:11 +02:00
Sandeep Kumar Dey f7ca406d30 CMakeList is updated to include two new examples
sdg-creation-time.cpp
sdg-creation-time-hv.cpp

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:11 +02:00
Sandeep Kumar Dey f24548376f Added two examples and updated CMakeList
sdg-creation-time.cpp
This example only creates Linf sdg with general Linf traits
sdg-creation-time-hv.cpp
This example creates Linf sdg with Linf traits for axis parallel segments

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:11 +02:00
Panagiotis Cheilaris 23c40d0746 replace boost/random.hpp with rnd number generator
This fixes a problem with generating Segment_voronoi_2.moc:

opt/local/include/boost/type_traits/detail/has_binary_operator.hp:50:
Parse error at "BOOST_JOIN"

The problem did not appear before installing boost 1.53 with macports.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:11 +02:00
Panagiotis Cheilaris f05baeb04c put debug messages in intersection bis SS
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:11 +02:00
Panagiotis Cheilaris b05926553e Bisctor_Linf SS with vectors
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:10 +02:00
Panagiotis Cheilaris 2e42758fcd intersection of two lines for bisector Linf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:10 +02:00
Panagiotis Cheilaris 3b99f23d99 removal of an assertion on q, t that is too strong
In the case when q and t have the same support, the following
assertion is too strong:

     CGAL_assertion(
                    same_points(q.source_site(), t.source_site()) or
                    same_points(q.source_site(), t.target_site()) or
                    same_points(q.target_site(), t.source_site()) or
                    same_points(q.target_site(), t.target_site())   )

This fixes a bug in the input br89.cin:

s       10      120     60      20
s       60      40      70      60
s       30      110     100     40
s        8       56     180    160

Probably, a similar assertion has to be removed that has to do
with r and t.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:10 +02:00
Panagiotis Cheilaris c23b499a32 convert only visible objects in ipe2cin
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:10 +02:00
Panagiotis Cheilaris 01614f2fd3 fix for touching parabolas PSS case
Fix for the following input start2db.cin:

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

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:10 +02:00
Panagiotis Cheilaris 943a8edf76 fix for touching parabolas PPS case
Fix for the following 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:10 +02:00
Panagiotis Cheilaris ae2dcf20ea debug messages for touching parabolae
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:10 +02:00
Panagiotis Cheilaris 99dee9b48e fecf pqrt parabola case when t is a point
I have also added some assertion that false is
returned when t and the point among p and q share
a coordinate.

Bug fix for 1seg2ptproblem.cin input:
s       10      120     60      20
p       60      40
p       70      40

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:10 +02:00
Panagiotis Cheilaris 1851868941 different parabola arcs for pqrt, case segment p
This is a bug fix for the following input br82.cin.

s       80      20      240     90
s       170     70      150     80
s       30      10      260     150

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:10 +02:00
Panagiotis Cheilaris 003603bbbe different parabola arcs for pqrt, case p is point
This is a bug fix for the following input br80.cin.

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

A similar fix is probably required for fecf pqrt case,
when p is segment and q is a point. The fix works when
vertices (p,q,r) and (q,p,inf) are not on different arcs
of the Linf parabola of p and q.

Explanation for arcs:
The Linf-perpendicular line to q that passes through p partitions
the Linf-parabola of p and q in two arcs.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:09 +02:00
Panagiotis Cheilaris af5fddf9d7 show intersects_segment_interior_inf_wedge_sp call
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:09 +02:00
Panagiotis Cheilaris 6ea3eba71c whitespace and long lines fix in fecf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:09 +02:00
Panagiotis Cheilaris 223e19b998 ipescript ipe2cin converts ipe to cin format
The script ipe2cin converts all segments and points
in the first page of the ipe file given as the command
line argument to the SDG Linf cin format for segments
and points. The result is printed to the standard output.
Use refirection to save to a .cin file.

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

ipescript ipe2cin ipe1.ipe > ipe1.cin

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:09 +02:00
Panagiotis Cheilaris f8de3a3e58 show field or ring in refining debug messages
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:09 +02:00
Panagiotis Cheilaris 870eb5aa99 faster drawing with vertical segment parabola
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:09 +02:00
Panagiotis Cheilaris 1cb71db25d faster drawing with horizontal segment parabola
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:09 +02:00
Panagiotis Cheilaris 1df026fd56 whitespace, indentation, shorten in constructions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:09 +02:00
Panagiotis Cheilaris 382d2f75cf bisector_linf include removal from constructions
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:09 +02:00
Panagiotis Cheilaris e4a5671296 removal of bisector code that is never executed
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:08 +02:00
Panagiotis Cheilaris 4f96988701 PS non-axis parallel segment simplification
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:08 +02:00
Panagiotis Cheilaris d91f272140 axis-parallel segments PS bisector linf simpler
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:08 +02:00
Panagiotis Cheilaris accd69e0ca removal of irrelevant comments in bisector linf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:08 +02:00
Panagiotis Cheilaris 603f7b00af whitespace and indentation fixes in bisector linf
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:08 +02:00
Panagiotis Cheilaris fe89a91776 +1/-1 direction components in PS bisector case
At the moment, it is only for non-axis-parallel segments.

Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:08 +02:00
Panagiotis Cheilaris 41a6e86669 removal of unused oriented_side predicate
Signed-off-by: Panagiotis Cheilaris <philaris@cs.ntua.gr>
2015-06-30 10:31:08 +02:00