Adam Wulkiewicz
4444357697
[disjoint] Support non-cartesian CSes for Pt/Box and Box/Box.
...
For Point/Box use part of the implementation of point_in_box covered_by
strategy.
2016-03-09 04:25:02 +01:00
Adam Wulkiewicz
8f14bf15c0
[strategies] In point_in_box support non-cartesian CSes and make this strategy it default.
...
The reason is that width of a Box may be greater than 180 deg. Side
strategy won't give the correct result in that case. For edges greater
than 180 deg the result of a side calculation is the opposite to expected.
2016-03-09 04:21:39 +01:00
Adam Wulkiewicz
97fae7d1dd
[strategies] Remove unneeded default_strtegy specializations for box_in_box strategy.
2016-03-09 04:20:10 +01:00
Adam Wulkiewicz
62eaf3a24d
[strategies] In ssf strategy check result WRT epsilon.
2016-03-08 14:46:20 +01:00
Adam Wulkiewicz
d04acacc74
[strategies] Support non-cartesian CSes in box_in_box strategy.
2016-03-08 04:38:48 +01:00
Adam Wulkiewicz
183d32f2e3
[strategies] In winding strategy use normalize_longitude() to avoid using dummy argument to normalize_spheroidal_coordinates().
2016-03-08 04:32:49 +01:00
Adam Wulkiewicz
49e90b204b
[util] Add normalize_longitude() function.
2016-03-08 04:31:20 +01:00
Adam Wulkiewicz
b5250287f6
[relate] Update copyright info.
2016-03-07 03:28:52 +01:00
Adam Wulkiewicz
a9ea6dcd48
[relate] Remove unused/broken ctors of result handlers.
2016-03-07 03:23:28 +01:00
Adam Wulkiewicz
175496f4f5
Merge pull request #343 from awulkiew/fix/winding
...
Fix winding strategy for spherical and geographic system.
2016-03-06 22:45:47 +01:00
Adam Wulkiewicz
463a085698
Merge pull request #341 from awulkiew/fix/rescale_policy
...
Enable rescale policy only in cartesian coordinate system.
2016-03-06 22:41:39 +01:00
Adam Wulkiewicz
a0f3058910
[winding][within] Fix winding strategy for some special cases near poles.
2016-03-03 15:43:59 +01:00
Adam Wulkiewicz
a64e23b64d
[within][winding] Support special cases (poles).
...
Segments traversing poles, segment endpoints on poles, point on pole.
2016-03-03 04:18:30 +01:00
Adam Wulkiewicz
9617f99513
[buffer] Adjust the buffer WRT recent changes in winding strategy.
...
In order to check if a point is inside rings buffer instead of calling
within() has optimization manually checking the sides of monotonous
sections in some cases. Since now the winding strategy scans X-dimension
the dimension used in optimization must also be X.
2016-03-03 01:21:03 +01:00
Adam Wulkiewicz
7e26469fb1
[strategies][within] Fix winding strategy for non-cartesian CS.
...
E.g. in spherical CS if a point has the same latitude as both points of
a segment it doesn't mean that it lies on the segment. This change fixes
this edge case by scanning 0-dimension instead of 1-dimension. In
spherical and geographic it's guaranteed that if longitude is the same a
point lies on a segment. Segments going through poles are not yet
supported.
2016-03-03 01:15:33 +01:00
Adam Wulkiewicz
69e32e2b20
[overlay] Remove unused typedef.
2016-03-02 15:28:12 +01:00
Barend Gehrels
6b0af591af
[colocations] remove debug info which was committed unintentional
2016-03-02 13:10:11 +01:00
Barend Gehrels
a5f5fa6425
[traverse] dont check for self intersections anymore
2016-03-02 13:09:50 +01:00
Barend Gehrels
dfda1ccbc3
[buffer] fix last cases, in cases where the same offsetted ring is self-intersecting,
...
the approach using multi_index does not work. We need an extra idenfication
to check the 'sources' of the turns in clusters. Added piece_index for
this purpose.
This can be templated later (so only used for buffer)
2016-03-02 13:09:25 +01:00
Barend Gehrels
438ee64956
[buffer][traverse] fix condition and added image to explain
2016-03-02 10:36:19 +01:00
Barend Gehrels
91223c5c98
Merge branch 'feature/cluster' into develop
2016-03-01 21:40:45 +01:00
Barend Gehrels
3f9505e3e6
[colocations] apply counts only to the "to" cases
...
(I used this already longer time but it was not yet committed)
2016-02-28 09:19:52 +01:00
Barend Gehrels
d4620e56b3
[traverse] fix case which was traversing twice;
...
this fixes all testcases for difference
2016-02-27 18:20:34 +01:00
Barend Gehrels
577c3bcfe4
[traverse] use same method for finding index; this fixes
...
the last uu case in union_multi (and is better anyways)
2016-02-27 18:16:19 +01:00
Barend Gehrels
83320f528e
[traverse] move loop to separate method to be shared later
2016-02-27 18:08:18 +01:00
Barend Gehrels
0bd3944652
[traverse] don't travel again over visited arcs in clusters. This fixes
...
(again, after breaking) all cases for difference/intersection and no new
errors for union/buffer
2016-02-26 18:50:34 +01:00
Barend Gehrels
d0f584e6f3
[traverse] fix cases where there is a choice between two equally suited
...
arcs from a cluster - if one is the starting point, take that one
2016-02-17 14:26:56 +01:00
Barend Gehrels
05c789e77e
[buffer][traverse] fix uu for buffer
2016-02-17 12:38:34 +01:00
Barend Gehrels
e30fd1ca4c
[traverse] fix case for buffer having only cc (in the whole cluster).
...
For a cc operation, main_rank 0 is OK
2016-02-17 11:43:01 +01:00
Barend Gehrels
c4c180bb7d
[union] instead of checking uu, count open spaces to support also
...
conbined touching turns without a uu
2016-02-10 20:34:37 +01:00
Barend Gehrels
41518b6ac3
[traverse] use count_left/count_right to get first requested turn
...
in clusters
2016-02-10 13:23:09 +01:00
Adam Wulkiewicz
80d2bb09ca
[io] Add support for all geometries to svg() and use it in svg_mapper.
2016-02-09 14:04:07 +01:00
Adam Wulkiewicz
dc3c5416f4
[io] Fix compilation error in write_svg for box and non-int coordinate type.
2016-02-09 01:39:10 +01:00
Adam Wulkiewicz
556bed04a5
[policies] Enable rescaling only for cartesian CS.
2016-02-04 16:32:45 +01:00
Barend Gehrels
1ea05c3539
[traverse] fix subject/origin, which did not work for buffer
...
Now the previous point is taken (this might in theory be colocated!)
2016-02-03 14:03:10 +01:00
Barend Gehrels
5a35924616
[traverse] use index instead of source_index to determine subject
...
(in relation with previous commit: use indexes instead of iterators, part 2)
2016-02-03 12:33:35 +01:00
Barend Gehrels
24908b7636
[traverse] go to index instead of iterator (part 1)
2016-02-03 12:10:54 +01:00
Barend Gehrels
34db67d51d
Merge branch 'develop' into feature/cluster
2016-02-03 11:12:33 +01:00
Adam Wulkiewicz
c018acfb4a
[strategies] Improve the accuracy of surveyor area strategy by using slightly different formula.
2016-01-28 14:46:54 +01:00
Barend Gehrels
e619ec6dfe
[overlay][buffer] make find_open generic for usage in both overlay
...
and buffer
2016-01-27 13:35:17 +01:00
Barend Gehrels
19747bea88
[buffer] use specific visiting policy for buffer
2016-01-27 13:33:57 +01:00
Barend Gehrels
18a893d2c0
[buffer][test] adaptions to make clusters visible in buffer SVG maps
2016-01-27 11:44:48 +01:00
Barend Gehrels
dc6b102b1f
[buffer] add three specializations necessary to include
...
buffered ring collections in SVG maps
2016-01-27 11:43:46 +01:00
Adam Wulkiewicz
5764489256
[formulas] Add a workaround for GCC bug (causing error: parse error in template argument list) in andoyer_inverse.
2016-01-25 21:11:55 +01:00
Adam Wulkiewicz
68fa4e5f0c
[adapted] Suppress unused parameter warning in Boost.Polygon adaptation.
2016-01-25 20:04:54 +01:00
Adam Wulkiewicz
e482a86b74
Merge pull request #340 from awulkiew/fix/back_inserter
...
Add range::back_inserter() and use it in algorithms when needed.
2016-01-25 19:46:08 +01:00
Adam Wulkiewicz
33982c9ae6
Merge pull request #339 from awulkiew/fix/andoyer
...
Fix andoyer
2016-01-25 19:39:57 +01:00
Adam Wulkiewicz
53d7dca308
[strategies] Use andoyer_inverse formula in andoyer distance strategy.
2016-01-25 19:34:20 +01:00
Adam Wulkiewicz
edc3c7851d
[algorithms] Use range::back_inserter() if points are added to geometries.
2016-01-23 13:57:49 +01:00
Adam Wulkiewicz
972b667525
[range] Add back_insert_iterator using traits and back_inserter().
2016-01-23 13:47:24 +01:00