Commit Graph

8536 Commits

Author SHA1 Message Date
Barend Gehrels
9e8ae09824 [traverse] slight changes in looping / returning from traverse 2015-12-23 18:18:58 +01:00
Barend Gehrels
4ecd4386fc [traverse] add set_visited instead of set_visited_for_continue,
doing both
2015-12-23 18:07:36 +01:00
Barend Gehrels
a5593b1dad [traverse] remove redundant typenames 2015-12-23 18:06:35 +01:00
Barend Gehrels
994d497225 [traverse] remove duplicate debug information, visitor can be used
for debugging
2015-12-23 17:53:35 +01:00
Barend Gehrels
b0684c4e08 [traverse] move traversal itself to traversal structure, only doing
one traversal. Currently returns error code for backtracking.
2015-12-23 17:48:51 +01:00
Barend Gehrels
7890d29184 [traverse] move selection functions to traversal struct 2015-12-23 16:47:34 +01:00
Barend Gehrels
cf4f827d07 [traverse] make traversal stateful object to simplify calling;
rename assign_next_ip to travel_to_next_turn
2015-12-23 16:36:35 +01:00
Barend Gehrels
7b9f39346b [overlay] debug make text for visited gray such that the rest
more stands out
2015-12-23 16:34:47 +01:00
Barend Gehrels
4b91272809 [traverse][backtrack] create a finalize method to keep successfully
traversed rings, also if one of next rings fails
2015-12-23 11:54:34 +01:00
Barend Gehrels
6f5677a003 [traverse] move registration of visit information 2015-12-23 11:27:56 +01:00
Barend Gehrels
5c2e678740 [traverse] fix types/names in set_visited_for_continue (the calls were OK) 2015-12-23 10:59:11 +01:00
Barend Gehrels
03cb54bd84 [traverse] fix warning 2015-12-23 10:32:00 +01:00
Barend Gehrels
16b88d5565 [traverse] restructure and reverse conditions
(first select next, then finish early)
2015-12-23 10:24:58 +01:00
Barend Gehrels
d588a35354 [traverse] use the_turn/the_op for now instead of iterators 2015-12-22 20:05:31 +01:00
Rene Rivera
f13b300eb4 Support avoiding running b2 in new release doc builds. 2015-12-21 21:17:32 -06:00
Barend Gehrels
194f3bf67c [overlay] add check on next turn index, if -1 take next one
to avoid dead ends
2015-12-20 19:05:30 +01:00
Barend Gehrels
5b1fcf78c2 [overlay/clusters] remove clusters with only 1 turn left 2015-12-20 13:10:50 +01:00
Barend Gehrels
64943c0911 [intersection] fix sort_by_side order for non-colinear points on same side 2015-12-20 13:09:39 +01:00
Barend Gehrels
aa14cad2b9 [buffer] add clusters to enrich/traverse from buffer 2015-12-20 12:07:31 +01:00
Barend Gehrels
f6ad756076 [union] make the side-comparison operation dependent on operation type
because for intersection we will need ccw
2015-12-20 11:57:33 +01:00
Barend Gehrels
f2319263a0 [union] fix known cases using clustering and sort_by_side during traversal 2015-12-19 18:10:34 +01:00
Barend Gehrels
6240c540bd [tangencies] clean up sorting per pair of turns, it has to be considered
more globally
2015-12-16 17:25:46 +01:00
Barend Gehrels
1cb6549a1f Merge branch 'develop' into feature/cluster 2015-12-16 15:45:45 +01:00
Rene Rivera
6929cab9a3 Adjust building so that we can override build/install locations for CI building. 2015-12-14 14:43:12 -06:00
Barend Gehrels
c15ca98aa1 Remove obsolete comment 2015-12-11 22:17:16 +01:00
Barend Gehrels
e7e425f8de [overlay] fix #recursive_boxes by enabling 0,4 as tight corner too.
This introduces a ccw method, called by tight functions.
Note that it does NOT work for the two other similar methods using ranks
2015-12-11 22:00:32 +01:00
Barend Gehrels
33ada1d6e8 [fix] Fix cases by correct ordering left/right using sorted side information
This fixes #recursive_boxes 6, 10, 11

Debug cases added to overlay.cpp (10, 11)
2015-12-10 20:14:10 +01:00
Barend Gehrels
a0fc7307ac [fix] use intersection point for sorting, the "both" is sometimes wrong
This fixes #recursive_boxes_8
2015-12-09 18:40:28 +01:00
Barend Gehrels
d08f527271 [test] added several existing and two new tests mainly for difference
(work in progress)
2015-12-09 18:05:40 +01:00
Barend Gehrels
378bee678a [fix] use sort_by_side now also for ordering of ii/non_ii turns
This fixes cases #101, #102 and #107 for difference (and corresponding
inverse versions for intersection)
2015-12-08 18:35:38 +01:00
Barend Gehrels
72d8c21258 [test][difference] Enable two other formerly failing cases, now fixed:
#ggl_list_20120915_h2 a/b

Fixed by handling turns colocated with xx
and omitting ux for intersection/difference
2015-12-08 12:20:54 +01:00
Barend Gehrels
a43cb3c171 [test][difference] Enable two formerly failing cases, now fixed:
#recursive_boxes_1 and #recursive_boxes_2

and updated expectations of failing/non failing tests
2015-12-08 12:15:58 +01:00
Barend Gehrels
6de8d91942 [fix] fix newly added case and get rid of different code for
intersection/difference
2015-12-07 22:45:29 +01:00
Barend Gehrels
36ddec97f8 sort_by_side: fix comments 2015-12-07 20:18:05 +01:00
Barend Gehrels
9302c9f02f [extensions][test] add inverse algorithm to calculate the inverse (in extensions)
and use it in overlay unit test
2015-12-07 20:17:31 +01:00
Barend Gehrels
9b299e8ab4 [test] add intersections of inverse versions of multi #65,
showing the current approach of discarding xx/ux is wrong (as neither not done
for union/difference)
2015-12-07 20:12:38 +01:00
Barend Gehrels
70db900f16 replace interior/exterior condition with generic code using geometry of segments,
and looking if the non-ii turn is independent from the ii turn.

The side_sorter will be used later for other purposes too
2015-12-07 15:17:02 +01:00
Barend Gehrels
5b8be328b3 Create new helper function direction_code, using code from point_is_spike_or_equal 2015-12-07 15:11:48 +01:00
Barend Gehrels
51e41c5238 [fix] fix buffer backtrack policy and traverse call for new visitor 2015-12-06 19:57:02 +01:00
Barend Gehrels
dd8911c1eb Remove now deprecated handle_tangencies 2015-12-06 19:30:40 +01:00
Barend Gehrels
555061dd9c [fix] fix includes of the recently changed copy_segment_point algorithm 2015-12-06 19:27:48 +01:00
Barend Gehrels
11844b6b74 [test] extend visitor with traversal information 2015-12-06 19:21:50 +01:00
Barend Gehrels
4a491fd77d [overlay][test] add test visitor for overlay operation including turn and turn-order 2015-12-06 18:45:21 +01:00
Barend Gehrels
4f90bcd4a5 [fix] handle ix/ix as ux/ux
This fixes case #77; case #72 is fixed by earlier changes
2015-12-06 18:21:35 +01:00
Barend Gehrels
99045b5c47 [fix] handle_colocations, discard_colocated was not refreshed 2015-12-06 18:07:48 +01:00
Barend Gehrels
0c9d365d4b [fix] copy_segment_points did not use reverse, fixed. It is now similar to
copy_segments
This somehow influences one unit test case but that will be handled later.
2015-12-06 18:01:19 +01:00
Barend Gehrels
90485acf79 Merge branch 'develop' into feature/fix_tangencies 2015-12-06 17:45:12 +01:00
Menelaos Karavelas
4ad4e29796 [doc][reference][algorithms][is_empty] is_empty actually implements an OGC function;
change the doc to reflect this;
2015-12-03 16:58:10 +02:00
Adam Wulkiewicz
b1f31d12dd [test][traverse] Add failing case. 2015-12-03 10:39:28 +01:00
Adam Wulkiewicz
5d02ff6aed [index] Add workarounds for uninitialized variable warnings reported by GCC-4.4 -O2. 2015-12-01 23:46:11 +01:00