public static Shape2DCollectionIterator Create <T>( IEnumerable <T> coll, bool connect) where T : IShape2D { Shape2DCollectionIterator dcollectionIterator = new Shape2DCollectionIterator(false); dcollectionIterator.linkedList_0 = new LinkedList <ISegment2DIterator>(); int num1 = 0; int num2 = 0; foreach (T obj in coll) { ISegment2DIterator iterator = obj.CreateIterator(); dcollectionIterator.linkedList_0.AddLast(iterator); if (num1 >= 0) { int totalSegmentCount = iterator.TotalSegmentCount; if (totalSegmentCount < 0) { num1 = -1; } else { num1 += totalSegmentCount; } } if (num2 >= 0) { int totalPointCount = iterator.TotalPointCount; if (totalPointCount < 0) { num2 = -1; } else { num2 += totalPointCount; } } } dcollectionIterator.int_0 = num1; return(dcollectionIterator); }
public ISegment2DIterator CreateIterator() { return((ISegment2DIterator)Shape2DCollectionIterator.Create <Polygon2D>((IEnumerable <Polygon2D>) this, false)); }