internal PolygonShape( int recordNumber, RectangleD extent, int[] parts, Vector2D[] positions) : base(recordNumber, ShapeType.Polygon) { _extent = extent; _parts = new ShapePart[parts.Length]; for (int i = 0; i < parts.Length; ++i) { int count = ((i == parts.Length - 1) ? positions.Length : parts[i + 1]) - parts[i]; _parts[i] = new ShapePart(positions, parts[i], count); } }