Commit Graph

4031 Commits

Author SHA1 Message Date
Barend Gehrels
16be4bbdb2 [overlay] fix new case #case_recursive_boxes_48 for self-intersections
by discarding self ii turns NOT located within another geometry
2017-05-31 11:12:57 +02:00
Barend Gehrels
00ef210f69 [overlay] Remove some redundant includes 2017-05-31 11:00:28 +02:00
Barend Gehrels
952a4e8a9c [overlay] extract discarding self-turns to separate headerfile 2017-05-31 10:59:52 +02:00
Barend Gehrels
acd364586f [overlay] handle todo-item, extract self_turn 2017-05-29 20:57:35 +02:00
Barend Gehrels
d3481fccca [overlay] fix within-check for buffer by making it a specialization
instead of a if-condition
2017-05-28 17:28:51 +02:00
Barend Gehrels
c53cbe56f5 [overlay] fix cases with self-turns where interior rings are generated
within another geometry, for union
2017-05-26 22:21:10 +02:00
Barend Gehrels
7d8a46d888 [overlay] remove redundant parameter 2017-05-26 15:26:18 +02:00
Barend Gehrels
0bc28aadb8 [self_turns] fix direction - for this, an extra template parameter is required
(it cannot (yet) be derived from the geometry, because it causes is_valid
to fail)
2017-05-25 13:52:13 +02:00
Barend Gehrels
7d86bfdbf5 [overlay] simplify conditions to discard turns in enrich 2017-05-25 12:03:03 +02:00
Barend Gehrels
99c580a7b1 [overlay] For self-turns, remove exception for difference and,
like union, for intersection only keep ii self-turns
2017-05-25 11:45:46 +02:00
Barend Gehrels
52c2fde84a [self_turns] fix behaviour (correct assignment of segment_identifiers) for ccw geometries 2017-05-21 14:41:46 +02:00
Barend Gehrels
713679f0d0 [overlay] add comment 2017-05-20 17:30:52 +02:00
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