Commit Graph

4019 Commits

Author SHA1 Message Date
Barend Gehrels
0de898a004 [union] Fix select_source for self_turn, it should use multi_index 2017-05-20 15:54:57 +02:00
Barend Gehrels
81977f07e6 [overlay] handle ii turn colocated with ux in the same way as with uu 2017-05-13 18:15:00 +02:00
Barend Gehrels
6ddcf4269b [overlay] discard uu selfturns for unions, and ii selfturns for differences 2017-05-13 17:54:24 +02:00
Barend Gehrels
1b20673a1d [intersection] fix cases with self-turns for intersections 2017-05-13 14:51:06 +02:00
Barend Gehrels
2114c3f7b6 [traverse] remove unintended committed code 2017-05-10 15:04:46 +02:00
Barend Gehrels
4b524fc7ac [union] set visited in clusters, like done in intersection. But now
use rank instead of next ip, which was a TODO item.
This causes one unittest case to fail, which has another reason, its turn
in a cluster is not detected because of finalization information. That is
now solved in a different way.
2017-05-10 14:06:45 +02:00
Barend Gehrels
e1473b41a8 [union] discard all ii turns for union, like uu turns are discarded for intersection.
This is important for validity.
2017-05-10 09:49:30 +02:00
Barend Gehrels
2ea9884ddd [validity] avoid discarded self-turn in isolated region generation,
and avoid registering uu-self-turns
This fixes the regressions in cases which were handled correctly before,
for intersection
2017-05-08 14:15:14 +02:00
Barend Gehrels
9395371beb [fix] Fix selecting rings after merge with covered_by, this is because
in this branch all the uu turns are discarded for intersections
2017-05-08 10:01:58 +02:00
Barend Gehrels
e52e2a8665 Merge branch 'develop' into feature/intvalid
# Conflicts:
#	test/algorithms/overlay/overlay_cases.hpp
#	test/algorithms/set_operations/intersection/intersection.cpp
#	test/algorithms/set_operations/union/union.cpp
2017-05-06 18:26:49 +02:00
Adam Wulkiewicz
105182a03b Merge pull request #386 from awulkiew/feature/geographic
Use envelope-seg and disjoint-seg/box strategies in various algorithms.
2017-05-04 13:14:38 +02:00
Barend Gehrels
97151eb985 Merge branch 'develop' into feature/intvalid 2017-04-27 10:41:12 +02:00
Adam Wulkiewicz
2f533848d6 [overlay] In follow, last_covered_by, pass linestring point instead of midpoint. 2017-04-26 04:35:23 +02:00
Adam Wulkiewicz
a1e8fd101e [overlay] Fix unused typedef in assign_parents. 2017-04-26 04:29:16 +02:00
Adam Wulkiewicz
b8e5cd55b6 [within] Fix initialization of const relate::less in multi_point_multi_point. 2017-04-26 04:25:16 +02:00
Adam Wulkiewicz
1a6446ba66 Merge branch 'develop' into feature/geographic 2017-04-25 03:48:06 +02:00
Adam Wulkiewicz
031d0c2957 [relops] Add/fix dispatches for missing PointLike/PointLike geometries combinations in covered_by, equals, within. 2017-04-24 19:46:52 +02:00
Adam Wulkiewicz
ca55981928 [strategies] Enable within/covered_by default_strategy for MultiPoints. 2017-04-24 19:43:01 +02:00
Barend Gehrels
7d17bd1e8a Merge branch 'develop' into feature/intvalid 2017-04-20 15:35:34 +02:00
Barend Gehrels
feae471d71 [overlay] Add missing include 2017-04-20 13:17:09 +02:00
Barend Gehrels
dfbb2604bd [sort_by_side] pass OverlayType (TODO item necessary to correctly
handle self-turns)
2017-04-20 12:50:16 +02:00
Barend Gehrels
081860e8dd [sort_by_side] fix (rare) cases where two froms arrive at a turn,
but only one leaves the next turn. This simplifies state to just a boolean.
This fixes cases like case_recursive_boxes_46 for union
2017-04-19 16:32:40 +02:00
Adam Wulkiewicz
2780c9dc28 [overlay] In select_rings/update_ring_selection use within instead of covered_by. This fixes dissolve. 2017-04-14 14:40:03 +02:00
Adam Wulkiewicz
f428b9cc8f [extensions][dissolve] Pass strategies into the overlay internals and envelope. 2017-04-14 03:59:45 +02:00
Adam Wulkiewicz
87a1a941f2 Merge branch 'develop' into feature/geographic 2017-04-14 01:39:05 +02:00
Adam Wulkiewicz
dc8ff59096 [extensions][dissolve] Add support for intersection strategy. 2017-04-14 01:07:30 +02:00
Adam Wulkiewicz
6586f6e7b7 [overlay][buffer][test] Use within/covered_by and envelope strategies.
- Pass intersection strategy into range_in_geometry and internally get
  point_in_geometry strategy.
- Add required intersection strategy passing into overlay and buffer
  internals.
- Use envelope strategy in assign_parents.
2017-04-11 00:24:21 +02:00
Adam Wulkiewicz
354ce9a376 [overlay][follow] Check covered_by with strategy. 2017-04-11 00:23:33 +02:00
Adam Wulkiewicz
02f149f012 [is_valid] Check point in polygon exterior ring with strategy. 2017-04-11 00:19:57 +02:00
Adam Wulkiewicz
e3ac044400 [equals][test] Make collect_vectors Ring-order-invariant with normalized_view. 2017-04-09 11:33:00 +02:00
Adam Wulkiewicz
657a5c8090 [equals][test] Fix collect_vectors for open Rings with closeable_view. 2017-04-09 01:46:46 +02:00
Barend Gehrels
9d13a668da Merge branch 'develop' into feature/intvalid 2017-04-05 09:51:21 +02:00
Adam Wulkiewicz
a29281d143 [strategies] Add missing const and explicit keywords. 2017-03-30 18:20:41 +02:00
Adam Wulkiewicz
8419c27f40 [overlay] Always use first point of a geometry returned by point_on_border().
- In the internals of point_on_border() get Midpoint as template parameter.
- Remove midpoint argument from point_on_border() parameters forcing to
  always return the first point.
- Add range_in_geometry() algorithm checking passed boundary point and/or
  points of a geometry for overlap with the interior/exterior of another
  geometry. This way it's possible to detect if a ring is inside or
  outside another ring even if the first point of a ring is overlapping
  the boundary of another geometry. Note tht this was also possible with
  midpoint.
- Enlarge the ring bounding box by epsilon in order to make the covered_by
  envelope check consistent with corresponding point_in_geometry check.
- Replace covered_by(Pt, Ring) with range_in_geometry() calling
  point_in_geometry().
2017-03-27 19:02:00 +02:00
Barend Gehrels
7f8cb5a1aa Merge branch 'develop' into feature/intvalid 2017-03-26 12:57:28 +02:00
Barend Gehrels
b320ddf8e6 [buffer] Fix segmentation fault for rings (start/finish ring was not called),
including new unit test
2017-03-26 12:49:48 +02:00
Barend Gehrels
20005d6e47 Merge branch 'develop' into feature/intvalid 2017-03-26 11:33:13 +02:00
Barend Gehrels
90c51c21f0 [traverse] combine conditions 2017-03-22 22:30:23 +01:00
Barend Gehrels
042b7124f8 [enrich] remove now redundant code (uu is now always discarded for intersection operations)
and change order, update comment
2017-03-22 22:29:25 +01:00
Barend Gehrels
a96b1da5cc [overlay] fix case (#recursive_boxes_45) where wrong decision was made based on a ux turn 2017-03-22 22:28:16 +01:00
Adam Wulkiewicz
e5dd98482a [algorithms] Pass envelope and disjoint-seg-box strategies into partition in disjoint, is_valid and overlay. 2017-03-22 21:02:11 +01:00
Adam Wulkiewicz
51694bfb0c [get_turns] Pass envelope strategy into sectionalize. 2017-03-22 21:00:55 +01:00
Adam Wulkiewicz
f09e33a30e [sectionalize] Support custom envelope strategy. 2017-03-22 20:58:43 +01:00
Adam Wulkiewicz
3ff1382c61 [strategies] Add envelope-seg and disjoint-seg-box getters to intersection, side and within strategies. 2017-03-22 20:57:35 +01:00
Adam Wulkiewicz
f3f312e42b [strategies][azimuth] Fix apply() function arguments types, replace CalculationType which can be void. 2017-03-22 19:43:29 +01:00
Adam Wulkiewicz
cefe1d04f7 [strategies] Add missing includes in envelope and disjoint strategies. 2017-03-22 19:41:32 +01:00
Adam Wulkiewicz
237bfdbe25 [disjoint] In Seg/Box fix the condition and replace covered_by with disjoint_point_box. 2017-03-22 19:38:34 +01:00
Barend Gehrels
16f2bcf357 [overlay] fix case where a union is traveled. As it now appears, due
to new cluster handling, all uu turns can (and should) be discarded for intersections
2017-03-22 15:10:28 +01:00
barendgehrels
ff79fe7bd0 [traverse][debug] change debug info for candidates and re-add them in cc 2017-03-22 12:08:29 +01:00
barendgehrels
273d1bf4a1 [overlay] pending commit, add strategy to self_turns 2017-03-22 11:51:51 +01:00