Commit Graph

498 Commits

Author SHA1 Message Date
Barend Gehrels
c5710b2ab9 [overlay] skip ranks of isolated regions 2017-10-04 14:00:40 +02:00
Barend Gehrels
210b662597 [overlay] correct (partly) the behaviour of isolation detection for
an isolated ring, connected to another isolated ring which is
connected multiple times to it
2017-09-27 13:05:25 +02:00
Barend Gehrels
3160ee6804 [overlay] fix additional case where isolation information was incorrect.
Including unit test. This also influences two other testcases but they
are not completely fixed by this fix
2017-09-20 17:00:52 +02:00
Barend Gehrels
f572abf5c1 [overlay] fix case which was not detected as isolated because it was
not clustered. Isolation is now independent on clustering.
Including unit test
2017-09-20 12:52:18 +02:00
Barend Gehrels
31f1872e46 [overlay] fix debug information 2017-09-20 10:21:50 +02:00
Adam Wulkiewicz
f93e3ad806 [test][union][overlay] Add geographic A/A test case (big polygons, one covering pole). 2017-09-17 21:14:18 +02:00
Barend Gehrels
ce9928a1aa [overlay] fix case which needed a specific selection of a matching ranked point 2017-09-13 13:07:10 +02:00
Barend Gehrels
6e4c61d202 [overlay] add check for self-cluster, which should be located within
the other geometry to avoid creating false rings
2017-09-06 14:40:44 +02:00
Barend Gehrels
3232fd0675 [test] enable testcase for all operations 2017-09-06 10:21:39 +02:00
Barend Gehrels
0591aa63ea Merge branch 'develop' into feature/intvalid 2017-08-30 13:30:46 +02:00
Barend Gehrels
a449c39e6f [overlay] fix missing ring due to discarded self-intersection turn 2017-08-30 12:56:48 +02:00
Barend Gehrels
c7c4c23f4f [test] include testcase for checking left_count 2017-08-23 15:38:18 +02:00
Barend Gehrels
2088e708cd [test] add testcase for union for last fix 2017-08-23 13:52:25 +02:00
Barend Gehrels
6db9266768 [overlay] replace colocated_ii / uu with has_colocated_both
because only one of them is used.
2017-08-23 13:49:02 +02:00
Barend Gehrels
e69c05da2f [overlay][test] add testcase for needing to avoid having blocked turns
in untraversed rings
2017-08-23 11:23:32 +02:00
Adam Wulkiewicz
35897a6a81 Merge pull request #412 from awulkiew/fix/algorithms_side_strategy
Geographic coordinate system related fixes.
2017-07-31 18:30:25 +02:00
Barend Gehrels
0938983c5e [test] add testcase 66 for startable self-turns 2017-07-31 12:16:26 +02:00
Barend Gehrels
d25fe47a93 [overlay] fix case which was not taking correct rank 2017-07-26 14:26:44 +02:00
Barend Gehrels
174ef5e38c [overlay] fix cases where two arcs leave a cluster in same direction,
one longer as the other. Remaining distance needs to be considered.
Including testcase case_recursive_boxes_64 which is fixed by this issue.
2017-07-19 18:59:55 +02:00
Barend Gehrels
497e055639 [overlay] don't check startable for determining has_traversed_turn,
and also check for turns both going in opposite direction (so uu for int)
This fixes case_recursive_boxes_63 (but not for difference yet)
2017-07-19 14:02:59 +02:00
Adam Wulkiewicz
1dad2eb97c [test][overlay] Update cases wrt recent changes (user-defined strategy). 2017-07-14 16:19:07 +02:00
Barend Gehrels
9acd4dcbba [overlay] dont excluded colocated self-turns from check within other geometry 2017-07-12 09:56:23 +02:00
Barend Gehrels
1b71880b4f [intersection] fix intersection pattern where it accidentally took last
one instead of penultimate
2017-07-08 12:45:24 +02:00
Barend Gehrels
8012d17ca6 Merge branch 'feature/intvalid' into develop 2017-07-05 17:08:52 +02:00
Barend Gehrels
4ccd4e43ce [is_valid] add extra info to turn to determine validity
Including unit test adaptions. Results are verified visually with SVG
2017-07-05 13:06:15 +02:00
Adam Wulkiewicz
77d0195d21 [test][overlay] Update select_rings test wrt recent changes in overlay. 2017-07-04 04:48:59 +02:00
Barend Gehrels
a1f92e9464 [test] remove #case_recursive_boxes1 from sort_by_side test because
it does not have one cluster (actually it has many)
2017-06-28 21:18:15 +02:00
Barend Gehrels
0a65db7b9b [test] Remove several testcases, because (after changes in discarding turns
from clusters) there were no clusters left in these cases
2017-06-28 21:17:41 +02:00
Barend Gehrels
60c9b096b1 Merge branch 'feature/intvalid' into develop
# Conflicts:
#	include/boost/geometry/algorithms/intersects.hpp
#	include/boost/geometry/algorithms/touches.hpp
2017-06-27 20:33:46 +02:00
Barend Gehrels
ee3f5ea20d [union] fix generating of false interiors by checking count_left 2017-06-25 13:56:01 +02:00
Barend Gehrels
2f2972959a [test] Add test cases 57,58,59 for new approach for union-clusters 2017-06-25 12:09:32 +02:00
Barend Gehrels
b667a0a787 [test] Add testcases 55/56 for handling union clusters / not discarding self turns 2017-06-25 11:54:04 +02:00
Barend Gehrels
604be619d9 [overlay] fix aggregations, include blocked as from 2017-06-14 10:28:47 +02:00
Barend Gehrels
412fc452da [overlay] Relax case 2, allow both continue and intersection
Fixes new #case_recursive_boxes_53
2017-06-13 20:29:25 +02:00
Barend Gehrels
47e1efb9e3 [test] Add testcases for variants of zoomed in cases (going OK) 2017-06-08 21:44:46 +02:00
Barend Gehrels
6b08e0b584 [test] Fix WKT (close interiors) 2017-06-08 21:43:25 +02:00
Barend Gehrels
3cd4f325ec [traverse] fix another similar case #case_137_multi now with two
different outgoing arcs
2017-06-07 22:48:18 +02:00
Barend Gehrels
9993d3697f [traverse] fix cases where touching interior/exterior is approached
from two different directions, and leave in one direction
2017-06-07 22:35:44 +02:00
Barend Gehrels
db372517b4 [traverse] fix cases where two polygons both have a touching interior ring,
which is equal to itself
2017-06-07 15:06:51 +02:00
Barend Gehrels
95454e4c8e [traverse] redo, isolated MUST be checked. Checking interior/exterior ring is
then redundant again, besides that it does not work for differences.
This breaks case_134 but that must be fixed differently.

After this change, recursive_polygons test is flawless
w.r.t. intersections/unions (validity/with self turns not yet checked)
2017-06-05 17:45:51 +02:00
Barend Gehrels
bd16305a72 [overlay] remove original behaviour to discard turns colocated with blocked turns,
because this stops generating interior rings in certain configurations, and
it is, in the meantime, handled differently in cluster traversal.
Fixes cases like new case #case_recursive_boxes_51
2017-06-05 15:59:29 +02:00
Barend Gehrels
ecae306146 [traverse] generalize pattern for colocated interior rings by making
cases with multiple rings (#case_134_multi) possible. It also does
not check for isolated anymore but instead checks interior/exterior rings
and region_ids
2017-06-04 14:04:00 +02:00
Barend Gehrels
b0cf8ffb59 [traverse] extend handling specific case of cc/ii with another variant,
now also solving #case_recursive_boxes_50
2017-06-04 11:23:42 +02:00
Barend Gehrels
463f778a36 [overlay] fix cases with two parallel interior rings, one touching
the exterior ring, by adding a special case for this. This solves
nearly all robustness (recursive_polygon) now.
2017-06-03 20:09:06 +02:00
Barend Gehrels
390f924845 [test] add recently added cases to union/intersection tests 2017-05-31 11:22:05 +02:00
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
Adam Wulkiewicz
1a605740cc Merge pull request #397 from awulkiew/feature/relops_multi_point
Add missing relational operations for MultiPoint/Geometry
2017-05-23 13:24:19 +02:00
Barend Gehrels
d6c8619cdc [test] fix reverse information for ccw geometries in overlay test 2017-05-21 14:45:47 +02:00
Barend Gehrels
25f55bfac4 [test] overlay, add ccw/open/self/rob info to svg filename 2017-05-21 14:43:38 +02:00
Barend Gehrels
d4ce96df48 [test] Add testcase 131 (fixed) and 132 (still unclear) 2017-05-20 17:30:25 +02:00
Barend Gehrels
2ebf8b7fe1 [test] add test for union needing self-turns. It is still failing. 2017-05-17 20:32:17 +02:00
Adam Wulkiewicz
bef6c5bb96 Merge branch 'develop' into feature/relops_multi_point
Conflicts:
	include/boost/geometry/algorithms/intersects.hpp
	include/boost/geometry/algorithms/touches.hpp
2017-05-10 15:30:27 +02:00
Barend Gehrels
81578d48e2 [test] add two testcases necessary for new approach discarding ii 2017-05-10 09:51:33 +02:00
Barend Gehrels
92a4326c6a [test] rename cases which clashed in last merge (they were suffixed by m)
103m -> 106
104m -> 107
105m -> 105 (actually was not a clash)
2017-05-06 18:53:30 +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
623f3f5fd0 [test][distance][overlay] Add missing includes. 2017-04-26 06:22:47 +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
a3b66db830 [test] Commit pending work, add optional SVG for sort by side tests 2017-04-20 12:30:53 +02:00
Barend Gehrels
f40793ab03 [test] Fix include/copyright 2017-04-20 12:00:32 +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
Barend Gehrels
d1fafacb10 [test] minor, remove spurious comma 2017-04-19 16:15:19 +02:00
Barend Gehrels
2e22bb16e0 [test] Add a basic unit test for sort_by_side (the other version
applies more or less a trick
2017-04-19 16:14:39 +02:00
Adam Wulkiewicz
2a3cb7b951 [test][intersection][union] Add cases where all points of g1 are the same as some points of g2. 2017-04-14 14:40:52 +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
Barend Gehrels
283eaac357 [test] Change sort_by_side unit test to allow for multiple clusters,
and add one (still failing) case to it
2017-04-05 16:52:59 +02:00
Barend Gehrels
76ec0f1b99 [test] Add tickets 2017-03-26 14:25:45 +02: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
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
ace8bdb7f0 [overlay] discard ii turns where two interior rings touch, for union operations.
This fixes case #80. Also, added case #105, testing that in a different way
(limiting solutions)
2017-03-18 20:17:22 +01:00
barendgehrels
32c422f745 [traverse] fix case #130, starting with cc, using remaining_distance 2017-03-13 15:36:13 +01:00
barendgehrels
e2781e147a Merge branch 'develop' into feature/intvalid
# Conflicts:
#	include/boost/geometry/algorithms/detail/overlay/overlay.hpp
#	include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp
#	include/boost/geometry/algorithms/intersects.hpp
#	include/boost/geometry/algorithms/touches.hpp
2017-02-25 20:01:08 +01:00
barendgehrels
caf0b9f7e9 [traverse] fix validity when two holes meet eachother and exlude an
area which should become a separate ring (#43), by passing the already visited
region_ids (which make them less local). It does not solve #35 yet.
2017-02-18 13:32:46 +01:00
barendgehrels
4547875d81 [intersection][test] add/update testcases 2017-02-17 12:39:11 +01:00
Adam Wulkiewicz
bc77e1255e [test] Adapt tests to new interfaces of various utilities in the library.
default_strategy services, partition, get_turns, strategies.
2017-01-28 04:09:49 +01:00
barendgehrels
0e95caa36d [overlay] skip ii outgoing/returning when, after that, a cc continues.
Plus extra testcase needing this (if self-turns are considered)
2017-01-11 16:56:15 +01:00
barendgehrels
a537112403 Merge branch 'develop' into feature/intvalid 2017-01-11 10:07:41 +01:00
Adam Wulkiewicz
b67ada92a0 [test][overlay] Comment out unused typedef in sort_by_side test. 2017-01-06 03:22:09 +01:00
Adam Wulkiewicz
edc0adc95a [test] Add missing TypeOf includes (after dropping Serialization dependency). 2017-01-04 16:44:44 +01:00
barendgehrels
4e77abbe0e [test] display self-turns visually 2016-12-16 15:27:53 +01:00
barendgehrels
5671c065e4 [test] Add similar simpler cases to single polygons 2016-12-16 13:54:08 +01:00
barendgehrels
07872acca1 [test] add (still failing) test for validity needing self-turn 2016-12-16 12:30:11 +01:00
barendgehrels
57250a3fdd [overlay] fix regression (duplicate polygons) due to last enhancements
in validity of intersections
2016-12-07 13:12:03 +01:00
barendgehrels
efecc02866 [traverse] fix certain cases to recognize starting point during intersection
in a broader context
2016-11-30 12:56:48 +01:00
barendgehrels
c4ab3653eb [test] minor order in testcase indexes 2016-11-23 18:01:45 +01:00
barendgehrels
3c58f15105 [traversal] handle non clustered ii turns using sort-by-side 2016-11-23 17:35:29 +01:00
barendgehrels
a801bf621e [test] overlay: test number of clips, and add (still failing) testcase 2016-11-17 13:56:42 +01:00
barendgehrels
44ddcf1833 [test] use macros to get conveniently add/manage the testcases 2016-11-17 13:18:17 +01:00
Barend Gehrels
3d2ff82fd7 [test] add inverse version for failing case for difference 2016-11-02 16:26:29 +01:00
Barend Gehrels
11a249d5eb [test] add one testcase, used for pending work (make intersections valid) 2016-10-12 17:57:34 +02:00
Barend Gehrels
a057b49ec0 [test] add testcases with one cluster and multiple outputs (one is invalid)
Add macros to specify testcases more conveniently
2016-10-05 12:55:39 +02:00
Barend Gehrels
2a343f072f [validity][test] add unit test for sort_by_side, testing open_count
of the one and only cluster found in the test cases
2016-09-28 13:21:22 +02:00
Barend Gehrels
30ad9da654 [validity] add cases with single cluster 2016-09-28 12:43:22 +02:00
Barend Gehrels
270a86cee7 [test] add comments about removed duplicate case 2016-08-31 11:44:57 +02:00
Barend Gehrels
08f87517b7 [colocations] also discard interior-ring turns with a ux 2016-07-06 13:31:11 +02:00
Barend Gehrels
5aa82adbba [test] remove duplicate testcase (mysql_23023665_4 is identical to mysql_21964049) 2016-07-06 12:48:46 +02:00
Barend Gehrels
b46805107b Merge branch 'develop' into feature/cluster_touch
Conflicts:
	include/boost/geometry/algorithms/detail/overlay/handle_touch.hpp
	test/algorithms/overlay/Jamfile.v2
	test/algorithms/set_operations/difference/difference.cpp
	test/algorithms/set_operations/union/union.cpp
2016-06-29 13:18:51 +02:00
Adam Wulkiewicz
4870150a78 [test][example] Change filenames in #includes 2016-06-23 15:10:24 +02:00
Adam Wulkiewicz
8147014095 Merge branch 'develop' into feature/sph_seg_inters
Conflicts:
	test/algorithms/overlay/overlay_cases.hpp
2016-06-21 16:53:33 +02:00
Adam Wulkiewicz
ff77e78562 [test][setops] Add failing test cases. 2016-06-21 16:45:46 +02:00
Adam Wulkiewicz
94b2ff8f10 [test][difference][union] Add failing cases. 2016-06-20 15:28:51 +02:00