예제 #1
0
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)
예제 #4
0
 def get_single_node_list(self):
     list = LinkedList()
     node = LinkedListNode(0)
     list.add_last_node(node)
     return (list, node)