public Segments_iterator(IModel pmodel)
        {
            SolverData SD = new SolverData(pmodel);

            segments = new List <ISegment>();
            foreach (var contour in SD.GetContours())
            {
                segments.AddRange(contour.GetSegments());
            }
            is_used = new bool[segments.Count];
            for (int i = 0; i < is_used.Length; i++)
            {
                is_used[i] = false;
            }
        }