Exemplo n.º 1
0
    //Optimize print head travel by reordering/reversing paths
    public void OptimizePaths(ref Vector2F current_head_pos)
    {
        int  best_i;
        bool best_reverse;

        for (int i = 0; i < paths.Count; i++)
        {
            find_closest_endpoint(current_head_pos, i, out best_i, out best_reverse);
            SegmentPath best_p = paths[best_i];
            if (best_reverse)
            {
                best_p.Reverse();
            }
            paths[best_i]    = paths[i];
            paths[i]         = best_p;
            current_head_pos = best_p.p.Last.Value;
        }
    }