public QaBorderSense( [Doc(nameof(DocStrings.QaBorderSense_polylineClasses))] IList <IFeatureClass> polylineClasses, [Doc(nameof(DocStrings.QaBorderSense_clockwise))] bool clockwise) : base(CastToTables((IEnumerable <IFeatureClass>)polylineClasses), true) { _orientation = clockwise; _grower = new RingGrower <DirectedRow>(DirectedRow.Reverse); _grower.GeometryCompleted += RingGeometryCompleted; }
private void Init(string constraint) { _grower = new RingGrower <DirectedRow>( DirectedRow.Reverse); _grower.GeometryCompleted += RingCompleted; _centroids = new List <IRow>(); _innerRings = new List <LineList <DirectedRow> >(); _outerRings = new List <LineList <DirectedRow> >(); KeepRows = true; _constraint = constraint; }
private void RingCompleted(RingGrower <DirectedRow> sender, [NotNull] LineList <DirectedRow> polygon) { int orientation = polygon.Orientation(); if (orientation > 0) { _outerRings.Add(polygon); } else if (orientation < 0) { _innerRings.Add(polygon); } // ignore degenerated "Line" polygons }
/// <summary> /// Handles the GeometryCompleted event of the ring grower. /// </summary> /// <param name="ringGrower">The ring grower.</param> /// <param name="polygonLineList">The polygon line list.</param> private void RingGeometryCompleted([NotNull] RingGrower <DirectedRow> ringGrower, [NotNull] LineList <DirectedRow> polygonLineList) { _errorCount += CheckPolygon(polygonLineList); }