Exemple #1
0
 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;
 }
Exemple #2
0
        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;
        }
Exemple #3
0
        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
        }
Exemple #4
0
 /// <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);
 }