return (0);
}
+static void merge_overlapping_segments(t_node *node)
+{
+ size_t i;
+ size_t j;
+ t_node_segment *seg_i;
+ t_node_segment *seg_j;
+
+ i = 0;
+ while (i < node->segments.size)
+ {
+ seg_i = ft_vec_access(&node->segments, i);
+ j = i + 1;
+ while (j < node->segments.size)
+ {
+ seg_j = ft_vec_access(&node->segments, j);
+ if (pos_is_equal(seg_i->position, seg_j->position))
+ {
+ seg_i->connects = merge_connect(seg_i->connects, seg_j->connects);
+ ft_vec_erase(&node->segments, j, NULL);
+ }
+ else
+ ++j;
+ }
+ ++i;
+ }
+ return ;
+}
+
void schema_user_draw_node(WINDOW *schematics_win, t_vec *nodes, t_vec *mosfets, t_position pos)
{
t_node *chosen_node;
merge_seg = find_node_seg_at_pos(end_node, seg.position);
merge_seg->connects = merge_connect(merge_seg->connects, seg.connects);
if (end_node->id != chosen_node->id)
+ {
+ index = chosen_node->id;
merge_nodes(nodes, mosfets, chosen_node, end_node);
+ chosen_node = get_node_by_id(nodes, index);
+ }
schema_draw_segment(schematics_win, merge_seg);
}
else
ft_vec_append(&chosen_node->segments, &seg);
schema_draw_segment(schematics_win, &seg);
}
+ merge_overlapping_segments(chosen_node);
+ schema_draw_node(schematics_win, chosen_node);
wmove(schematics_win, seg.position.y, seg.position.x);
return ;
}