Adam Wulkiewicz
0874a880b5
Added methods replacement for some cases of non-endpoint IPs, e.g. touching c or e is replaced by m or t. Methods are set WRT IPs, not segments, i.e. if points of both intersecting segments are equal to the IP the method is e. In addition to this x/x was handled, e.g. t+x/x is replaced by e+c/c.
2014-01-29 17:24:46 +01:00
Adam Wulkiewicz
9c63a58412
added proper operations generation for non-endpoint IPs
2014-01-29 15:09:54 +01:00
Adam Wulkiewicz
b70c886f2e
IP duplicates handled for endpoints
2014-01-27 16:44:11 +01:00
Adam Wulkiewicz
e7992832a9
added a few test cases
2014-01-24 20:33:51 +01:00
Adam Wulkiewicz
bd686badd7
most of the duplicated endpoints handled
2014-01-24 16:58:11 +01:00
Adam Wulkiewicz
a9f1c8e00a
handled all endpoints, for now method is not set, IPs may be duplicated and invalid value is returned from handle_first_last()
2014-01-23 18:23:12 +01:00
Adam Wulkiewicz
50fe5a7e67
added copyrights
2014-01-22 22:02:22 +01:00
Adam Wulkiewicz
7e3d0571f9
fixed error in collect_vectors - vectors previously gathered for other rings were removed based on the direction of the last vector of currently analysed ring
2014-01-22 22:00:29 +01:00
Adam Wulkiewicz
3f667361d6
get_turns() for endpoints L/L started from the beginning, added copyrights info, added comments regarding segment intersection results analysis
2014-01-22 21:42:44 +01:00
Barend Gehrels
95bb6372ab
[geometry] Added testcase for ticket #9563 which was already fixed in this branch
...
Rescaling to robust type already fixed this.
2014-01-18 18:14:51 +01:00
Barend Gehrels
e71c0c92e2
[geometry] Uncommented various testcases for traverse unit test
...
partly related to rescaling
2014-01-17 20:05:46 +01:00
Barend Gehrels
175032c841
[geometry] Integer coordinates are now not rescaled
...
which fixes corresponding tests
2014-01-17 19:58:31 +01:00
Barend Gehrels
fc681ba236
[geometry] fixes in unit tests w.r.t. rescale policy
2014-01-17 18:53:29 +01:00
Barend Gehrels
75c1010ef1
[geometry] Fixed multi testcases w.r.t. rescaling to robust
2014-01-16 19:34:02 +01:00
Barend Gehrels
f61a9da709
[geometry] Fixed testcases for overlay w.r.t. rescale to integer
2014-01-16 19:03:45 +01:00
Barend Gehrels
417b4d9450
[geometry] Pass rescale policy for get_turns test
2014-01-16 18:46:24 +01:00
Barend Gehrels
90b75b7640
Merge branch 'develop' into rescale_to_integer
2014-01-16 14:19:01 +01:00
Barend Gehrels
a7ca995be5
[geometry] Changes in debug-information
2014-01-16 14:12:37 +01:00
Adam Wulkiewicz
594d025e95
overlay:: equal<> and collinear<> used to calculate the operations for the first point of P LS in adequate cases
2014-01-09 19:36:31 +01:00
Bruno Lalande
cfba8409c5
Made transform variant-aware.
2014-01-09 09:09:56 +00:00
Bruno Lalande
efd1540b1a
Change test_transform_point() to use check_transform().
2014-01-08 22:36:49 +00:00
Bruno Lalande
be9341df70
Split test_transform_linestring into test/check (in preparation to testing variants).
2014-01-08 17:59:52 +00:00
Bruno Lalande
3019f29a5b
Fixed test issue - the test was comparing out1 with itself rather than out2, and started failing when corrected because inappropriately implemented for CS transformations.
2014-01-08 17:54:17 +00:00
Barend Gehrels
5f87dfcd3b
[geometry] Unit test traverse, added debug info
2014-01-08 13:51:49 +01:00
Barend Gehrels
831302112e
[geometry] Added testcases or changed precisions in a few cases
2014-01-08 13:51:19 +01:00
Adam Wulkiewicz
518156a727
[geometry] begined the new implementation of handling of first and last LS point in get_turns(), for now considered cases when both LSs starts on the same segment
2014-01-07 21:46:46 +01:00
Bruno Lalande
1d561e58bd
Merge branch 'feature/variants' into develop
2014-01-05 17:10:40 +00:00
Adam Wulkiewicz
2799cb867b
[geometry] handled IP on the last point of LS for equal and collinear case, for the first point method may now be set to equal or collinear
2014-01-05 17:27:31 +01:00
Bruno Lalande
8d58aaf8b9
Made touches (1 param version) variant aware.
2014-01-05 15:54:14 +00:00
Adam Wulkiewicz
c1530d41f9
[geometry] handled IP for the first point of a LS when IP is equal to the second point of the first segment of the other LS to avoid generation of 2 IPs for the same point
2014-01-04 23:51:12 +01:00
Adam Wulkiewicz
def187c977
added generation of IP for the first point of a Linestring - c+c/c, c+i/u or c+u/i
2014-01-04 01:11:43 +01:00
Bruno Lalande
87a5a242f4
Made touches (2 params version) variant aware.
2014-01-02 09:34:31 +00:00
Adam Wulkiewicz
352996aa2e
[geometry] added tests for intersects(Ls,Ls) for linestrings with colinear segments
2013-12-27 20:23:33 +01:00
Bruno Lalande
4919e00e2d
Made simplify variant-aware
2013-12-24 22:15:15 +00:00
Adam Wulkiewicz
3d8cc8730a
[geometry] added relate() test
2013-12-24 04:17:06 +01:00
Adam Wulkiewicz
8f742a692c
[geometry] added self-turns output to 1-geometry to_svg()
2013-12-23 14:49:20 +01:00
Adam Wulkiewicz
eba7d26db4
[geometry] in relate() called dispatch::get_turns instead of higher level one to avoid geometries switching, added generation of SVGs for some special cases
2013-12-22 23:35:18 +01:00
Barend Gehrels
b889923619
[geometry] Take care that FP ratio (which is still used) is between 0-1 too.
...
If not we take the robust ratio.
This fixes case ticket_9081_15 where the intersection point was far outside
the belonging segment (causing a new spike)
2013-12-22 14:16:15 +01:00
Barend Gehrels
1a1cb4cff0
[geometry] Moved debug string
2013-12-22 14:14:37 +01:00
Barend Gehrels
9cd79d8033
[geometry] Instead of (non-rescaled) append, we clean rescaled dups afterwards.
...
We don't do it on the fly to avoid additional rescaling, it is done only once per point
This also changes occasionally some number-of-points in testcases (now more cleaned)
2013-12-22 14:12:40 +01:00
Barend Gehrels
e871436e30
[geometry] Slightly increased tolerance for the r.e.s. test
2013-12-22 10:56:49 +01:00
Adam Wulkiewicz
4f07087db5
[geometry] handled more cases in relate(Ls, Ls)
2013-12-22 04:00:15 +01:00
Adam Wulkiewicz
106f3da5ae
[geometry] fixed some errors in relate(Ls, Ls): checked terminal points of both linestrings, treated touch with x/x as ii
2013-12-21 02:41:48 +01:00
Adam Wulkiewicz
382e975f2f
[geometry] added test file for relate(), fixed error in linear_linear, added tag-dispatched detail::relate()
2013-12-21 01:49:40 +01:00
Adam Wulkiewicz
da524695c6
[geometry] added relate() test implementation for Point-Geometry, Geometry-Point and Linestring-Linestring. The least one is not finished yet.
2013-12-20 19:58:08 +01:00
Barend Gehrels
e0d9036aef
[geometry] removed segment_equal, now all collinear go to one fuction.
...
Function now renamed to segments_collinear, and the other to segments_crosses
We calculate opposite now only in "direction", where it is used to pass through.
That one also checks on equality
Test 5103 now (or with previous action for touches) also passes again.
2013-12-20 18:50:08 +01:00
Adam Wulkiewicz
3f7ef7b739
[geometry] added within(Ls, Ls) tests for overlapping linestrings
2013-12-20 01:41:35 +01:00
Adam Wulkiewicz
907a260b01
[geometry] added within(Ls, Ls)
2013-12-20 01:28:32 +01:00
Barend Gehrels
4a5b85c870
[geometry] Collinear touch now also uses new unified method
...
This fixes the holes_intersect_and_touch case
NOTE: method should now be renamed, not ...two_intersection_points
2013-12-19 22:38:52 +01:00
Barend Gehrels
9a9efcff89
[geometry] Work in progress: factor (rational) instead of distance
...
This is a large commit. It replaces enriched.distance with factor. Factor
is based on integer calculations, calculated in cart_intersect, from the
passed robust points, so always trustable.
We had to do this because without certain tests failed because of FP
problems with distance (calculated with FP).
This commit also greatly simplifies relate_collinear, where most things and checks
are replaced by simple unified calculations. This is also based on robust
fractions (but could have been done earlier).
Many (but not all) testcases commented in previous commit are now uncommented
again, they now work thanks to the fractions. There are also testcases
uncommented which now work correctly using clang/Linux
This commit breaks compiling disjoint (because of rescale), and running buffer
(also because of rescale), and some more (probably all because or rescaling),
this has to be fixed soon after.
2013-12-18 19:19:10 +01:00