Commit Graph

4294 Commits

Author SHA1 Message Date
Barend Gehrels
83f3920ab9 [dissolve] using preferred operations, they are now also used to determine
the order in which turns are traversed (first preferred).
This introduces a specific traverse umbrella class for dissolve
2018-01-03 17:36:13 +01:00
Barend Gehrels
bb506996f9 [dissolve] add attribute preferred start, and use it to decide which
operation should be selected in case both is union (which is now normal
for dissolve)
2018-01-03 17:07:48 +01:00
Barend Gehrels
0dfd86f678 [dissolve] instead of fixing dead-ends only
(which was actually a workaround and too limited), all turns are
now adapted and intersection is mapped to union
(note: a next commit will work this out further)
2018-01-03 16:27:58 +01:00
Barend Gehrels
4a107545a1 [dissolve] remove distinction between dissolve_union/dissolve_intersection
(note: a next commit will work it out further)
2018-01-03 16:25:39 +01:00
Barend Gehrels
f25710c2e5 Merge branch 'feature/intvalid' into feature/dissolve 2018-01-03 11:08:59 +01:00
Barend Gehrels
26a50a2bbd [traverse] fix case #case_141_multi which is isolated with multiple
connections
2018-01-01 16:28:32 +01:00
Barend Gehrels
1a724ed696 [difference] remove the self-turns-which-loop function which is now not necessary anymore
This fixes the remaining error in #ticket_12503 and makes intersection/union more
similar
2017-12-31 23:10:14 +01:00
Barend Gehrels
e9d8d23601 [overlay] add defensive check 2017-12-31 17:20:11 +01:00
Barend Gehrels
6792d76eac [enrich] remove unused parameter for_operation 2017-12-31 17:19:11 +01:00
Barend Gehrels
9f00c8501b [union] skip discarding i/e turns for union because this causes some turns
to be missed. This fixes the new case #case_recursive_boxes_88
2017-12-31 17:17:21 +01:00
Barend Gehrels
f704579ed0 [overlay] by default use self-turns. This reverses definition
of define SELF to NO_SELF. Including all unit tests.
2017-12-29 13:17:42 +01:00
Barend Gehrels
f6c67daba6 [difference] fix cases where ii turns were not discarded, this
was a todo-item, it was not yet done for difference.

Including unit testcase using this.
2017-12-20 16:22:27 +01:00
Barend Gehrels
68bc3ee07a [dissolve] apply last change for dissolve too 2017-12-20 14:08:13 +01:00
Barend Gehrels
b28b312141 [difference] fix cases where potential inner rings have same area as
outer rings (located elsewhere), due to an earlier optimization
2017-12-20 14:07:51 +01:00
Barend Gehrels
11cff883b0 [intersection] Fix newly found case by removing some conditions from
handle_self_turns and setting ii-self-turns as non-startable instead of
discarding them.
2017-12-16 18:52:39 +01:00
Barend Gehrels
7552200cfa [traverse] use new method operation_from_rank in two other places as well 2017-12-15 14:37:55 +01:00
Barend Gehrels
556896c7cc [traverse] need to select on operations in selecting ranks, it is not
done later. Small regression found by recursive_polygons
2017-12-15 14:37:17 +01:00
Barend Gehrels
5d99d1608d [overlay] fix new #case_recursive_boxes_82 by greatly simplifying the code.
patterns/aggregations were added to solve specific intersection problems
and validity in the past. In the meantime self-turns and isolation information
is much better, and those code is not needed anymore.
This also fixes the #mysql_regression_1_65_2017_08_31
This also makes union/intersection code for handling clusters much more similar
2017-12-15 13:20:41 +01:00
Barend Gehrels
f0d74e3386 [union] simplify cluster behaviour by skipping aggregation step 2017-12-15 12:34:25 +01:00
Barend Gehrels
2cd973df85 Merge branch 'develop' into feature/intvalid 2017-12-15 11:05:16 +01:00
Adam Wulkiewicz
c83bc33cb4 [overlay] Add missing includes in add_rings.hpp 2017-12-15 01:16:36 +01:00
Barend Gehrels
b9d0e73310 [dissolve] rename variables to avoid shadowing 2017-12-14 17:22:34 +01:00
Barend Gehrels
bdeed328ff [dissolve] fix dead ends, necessary to solve case #dissolve_star 2017-12-14 16:23:09 +01:00
Barend Gehrels
4c217dd106 [dissolve] correct orientation for rings without self-turns 2017-12-14 15:30:11 +01:00
Barend Gehrels
9b138e2a98 [traverse] skip switch detector for dissolve 2017-12-14 15:29:28 +01:00
Barend Gehrels
fea0a495f7 [enrich] skip discarding turns based on counts left/right 2017-12-14 15:28:23 +01:00
Barend Gehrels
d564e8f81c [overlay] fix typo 2017-12-14 15:27:43 +01:00
Barend Gehrels
f2613776fd Merge branch 'feature/intvalid' into feature/dissolve 2017-12-14 10:49:42 +01:00
Barend Gehrels
f0619cb19a [enrich] combine expressions, set cluster, add comments 2017-12-06 15:43:11 +01:00
Barend Gehrels
dc7c17347f [traverse] dont use blocked turns for region, and simplify
expressions by static consts
2017-12-06 15:42:27 +01:00
Barend Gehrels
080f0f22f4 [traverse] fix case where hole of one of the inputs formed a
disconnected interior (invalid). In the end it is fixed by only
deleting code. This code is not really old but added to fix some
cases, which are finally fixed in a more generic way.

It fixes a new case and also enhances #case_141_multi
2017-12-06 14:25:42 +01:00
Barend Gehrels
536f001483 [traverse] update debug info with removed fields 2017-12-06 11:33:56 +01:00
Barend Gehrels
d52139934c [traverse] also remove now unused loop setting local region ids 2017-12-06 11:27:12 +01:00
Barend Gehrels
fa6d0ce2ee [traverse] replace switch_source by inspecting region ids locally 2017-12-06 11:23:27 +01:00
Barend Gehrels
d096cc8230 [traverse] use passed turn instead of turn index 2017-12-06 11:06:50 +01:00
Barend Gehrels
8f6cf2681b [traverse] remove from cluster switch_source which is not used anymore 2017-12-06 10:08:58 +01:00
Adam Wulkiewicz
9e882889f4 [formulas] Fix thomas direct formula for meridian segments (azi=0, lat1<0). 2017-12-04 22:31:26 +01:00
Barend Gehrels
0e9e6caded [buffer][fix] in deflated buffers it could occur that a turn was missed
(so: not within original) and traveled to itself. This is fixed by checking
for deflated buffers (or inflated interior rings) if the minimum number
of turns is 3.
2017-11-29 16:27:01 +01:00
Barend Gehrels
52e26ab6c1 [dissolve] minor, fix line length 2017-11-24 13:32:19 +01:00
Barend Gehrels
bf0ebd31c5 [dissolve][fix] use rescale policy to fix some cases defined as <float> 2017-11-24 13:31:59 +01:00
Barend Gehrels
b65b212f99 [dissolve] make sure that for dissolve both startable and selection of
union operation does not make use of counts
2017-11-24 12:21:59 +01:00
Barend Gehrels
e474309feb [dissolve] fix selecting the right turn for traveling to itself
This fixes the reported testcase #dissolve_mail_2017_10_26_a
2017-11-24 12:01:35 +01:00
Barend Gehrels
3307dc3b2b Merge branch 'develop' of https://github.com/boostorg/geometry into develop 2017-11-23 17:26:52 +01:00
Barend Gehrels
fc8cc479fa [traverse] make select_source more generi 2017-11-23 17:15:48 +01:00
Barend Gehrels
751b05ddc1 [buffer] revert one change (should keep multi_index) and
update tests now that validity is improved (but not yet solved).

Also 2 testcases are added generating uu points
2017-11-23 17:03:41 +01:00
Barend Gehrels
88b9e041ed [buffer] for uu-turns, use piece_index instead of multi_index because
a uu turn might be formed at the same source multi-index
2017-11-23 16:02:33 +01:00
Barend Gehrels
ec454bbce1 [buffer] add the necessary piece-information to operators and debug info 2017-11-23 16:01:49 +01:00
Barend Gehrels
1335aac14d [buffer] remove exception for buffer, it is outdated and its omission
is necessary to calculate switch_source correctly
2017-11-23 15:44:30 +01:00
Adam Wulkiewicz
48d2d99b2b [formulas][strategies] Move updating of state from area formulas to strategy where it should be. This also fixes conversion warning. 2017-11-23 15:32:54 +01:00
Adam Wulkiewicz
0e7614f27d Merge pull request #433 from vissarion/feature_fix_pt_sgmt_pole
Fix pt-sgmt strategy for special meridian segments passing through poles
2017-11-23 02:37:11 +01:00