Commit Graph

3532 Commits

Author SHA1 Message Date
Barend Gehrels
44917ea227 [traverse] remove commented output 2015-12-31 12:50:29 +01:00
Barend Gehrels
ca2123646c [overlay] remove unused typedef 2015-12-31 12:49:53 +01:00
Barend Gehrels
3633402bf8 [colocations] handle todo item, discard colocated uu turns conditionally
based on ordering turns
2015-12-31 12:49:24 +01:00
Barend Gehrels
92dd2295ed [cololocations] simplified clustering, less merging necessary 2015-12-30 20:27:10 +01:00
Barend Gehrels
eee10489ad [traverse] fix, take the right operation in a cluster instead of using
select_operation
2015-12-30 15:18:54 +01:00
Barend Gehrels
dbb92e7088 [traverse] move logic of select_operation to inside traverse_to_next_turn,
to prepare using selected cluster operation later
2015-12-29 19:33:33 +01:00
Barend Gehrels
d104e7175f [traverse] small improvements w.r.t. using objects instead of iterators 2015-12-29 19:03:29 +01:00
Barend Gehrels
1436dc0afd [traverse] simplify loop because backtrack now just rejects, finalized
rings are preserved
2015-12-29 18:33:32 +01:00
Barend Gehrels
07a3cc3506 [traverse] minor changes in names and simplified main loop 2015-12-28 19:44:44 +01:00
Barend Gehrels
e882f5e224 [traverse] fix registration of start which should be done immediately,
to get correct early finish for ii turns
2015-12-27 18:42:39 +01:00
Barend Gehrels
2777d57961 [enrich] remove old block now that discarding uu is moved after
handling colocations
2015-12-24 18:35:42 +01:00
Barend Gehrels
aaae44d041 [overlay] change debug info 2015-12-24 18:34:38 +01:00
Barend Gehrels
5e6ba5ed06 [colocations] fix #case_recursive_boxes3 by adding condition
that turn should not be collinear (to be found out why)
2015-12-24 18:32:02 +01:00
Barend Gehrels
5c18dd370f [colocations] don't discard ring if it is blocked
(fixes #case_recursive_boxes_4)
2015-12-24 18:20:50 +01:00
Barend Gehrels
4878e7c34c [enrich] move discarding uu until after clustering, and within
clustering discarding turns colocated with uu on the same ring.
This breaks 2 cases, to be solved later, and fixes case_recursive_boxes_12
2015-12-24 17:05:05 +01:00
Barend Gehrels
e14d7fcd88 [traverse] in case of no outgoing arcs, always return false
This fixes all current union_multi testcases
2015-12-24 14:55:23 +01:00
Barend Gehrels
00fca1e961 [traverse] select right operation from first outgoing arcs, in case there
are multiple
2015-12-24 14:08:01 +01:00
Barend Gehrels
7614b1bce6 [traverse] add warning for subject 2015-12-24 13:42:02 +01:00
Barend Gehrels
65a3eeb804 [traverse] don't select starting points from clusters which are build in 2015-12-24 13:41:30 +01:00
Barend Gehrels
afd2599bc9 [overlay] instead of traversing through cluster, the next turn index
is determined in enrich_intersection_points
2015-12-24 13:38:48 +01:00
Barend Gehrels
aa230c7f71 [traverse] make visitor/robust policy also member, and call visitor
from other visit
2015-12-23 18:43:42 +01:00
Barend Gehrels
f5e8d4d7ec [traverse] rename turn/op to start_... 2015-12-23 18:29:53 +01:00
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
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
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
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
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
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