Example #1
0
        public QaNoBoundaryLoops(
            [Doc(nameof(DocStrings.QaNoBoundaryLoops_polygonClass))][NotNull]
            IFeatureClass polygonClass,
            [Doc(nameof(DocStrings.QaNoBoundaryLoops_errorGeometry))]
            BoundaryLoopErrorGeometry errorGeometry,
            [Doc(nameof(DocStrings.QaNoBoundaryLoops_areaRelation))]
            BoundaryLoopAreaRelation areaRelation,
            [Doc(nameof(DocStrings.QaNoBoundaryLoops_areaLimit))] double areaLimit)
            : base((ITable)polygonClass)
        {
            Assert.ArgumentNotNull(polygonClass, nameof(polygonClass));
            Assert.ArgumentCondition(
                polygonClass.ShapeType == esriGeometryType.esriGeometryPolygon ||
                polygonClass.ShapeType == esriGeometryType.esriGeometryMultiPatch,
                "polygon or multipatch feature class expected");

            _errorGeometry  = errorGeometry;
            _areaRelation   = areaRelation;
            _areaLimit      = areaLimit;
            _shapeFieldName = polygonClass.ShapeFieldName;
            _shapeType      = polygonClass.ShapeType;

            _spatialReference = ((IGeoDataset)polygonClass).SpatialReference;
            double xyTolerance = GeometryUtils.GetXyResolution(polygonClass);

            _xyTolerance = xyTolerance;
        }
Example #2
0
        private static IssueCode GetAreaRelationIssueCode(
            BoundaryLoopAreaRelation areaRelation)
        {
            switch (areaRelation)
            {
            case BoundaryLoopAreaRelation.IgnoreSmallerOrEqual:
                return(Codes[Code.BoundaryLoop_AreaLargerThanLimit]);

            case BoundaryLoopAreaRelation.IgnoreLarger:
                return(Codes[Code.BoundaryLoop_AreaSmallerThanLimit]);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }