def get_representative_trajectory_average_inputs(tls_list, min_lines, min_prev_dist): cur_active = [False] * len(tls_list) active_list = LinkedList() insert_list = [] delete_list = [] out = [] line_segment_endpoints = get_sorted_line_seg_endpoints(tls_list) i = 0 while i < len(line_segment_endpoints): insert_list[:] = [] delete_list[:] = [] prev_pos = line_segment_endpoints[i].horizontal_position while i < len(line_segment_endpoints) and numbers_within(line_segment_endpoints[i].horizontal_position, \ prev_pos, DECIMAL_MAX_DIFF_FOR_EQUALITY): if not cur_active[line_segment_endpoints[i].rsegment_id]: insert_list.append(line_segment_endpoints[i]) cur_active[line_segment_endpoints[i].rsegment_id] = True elif cur_active[line_segment_endpoints[i].rsegment_id]: delete_list.append(line_segment_endpoints[i]) cur_active[line_segment_endpoints[i].rsegment_id] = False i += 1 for line_seg_endpoint in insert_list: active_list.add_last_node(line_seg_endpoint.list_node) possibly_append_to_active_list(active_list, out, prev_pos, min_prev_dist, min_lines) for line_seg in delete_list: active_list.remove_node(line_seg.list_node) return out
def get_representative_trajectory_average_inputs(trajectory_line_segments, min_lines, min_prev_dist): cur_active = [False] * len(trajectory_line_segments) active_list = LinkedList() insert_list = [] delete_list = [] out = [] line_segment_endpoints = get_sorted_line_seg_endpoints(trajectory_line_segments) i = 0 while i < len(line_segment_endpoints): insert_list[:] = [] delete_list[:] = [] prev_pos = line_segment_endpoints[i].horizontal_position while i < len(line_segment_endpoints) and numbers_within(line_segment_endpoints[i].horizontal_position, \ prev_pos, DECIMAL_MAX_DIFF_FOR_EQUALITY): if not cur_active[line_segment_endpoints[i].line_segment_id]: insert_list.append(line_segment_endpoints[i]) cur_active[line_segment_endpoints[i].line_segment_id] = True elif cur_active[line_segment_endpoints[i].line_segment_id]: delete_list.append(line_segment_endpoints[i]) cur_active[line_segment_endpoints[i].line_segment_id] = False i += 1 for line_seg_endpoint in insert_list: active_list.add_last_node(line_seg_endpoint.list_node) possibly_append_to_active_list(active_list, out, prev_pos, min_prev_dist, min_lines) for line_seg in delete_list: active_list.remove_node(line_seg.list_node) return out
def get_single_node_list(self): list = LinkedList() node = LinkedListNode(0) list.add_last_node(node) return (list, node)