Esempio n. 1
0
        protected override int Check(IFeature feat0, int tableIndex,
                                     SortedDictionary <SegmentPart, SegmentParts> processed0,
                                     IFeature feat1, int neighborTableIndex,
                                     SortedDictionary <SegmentPart, SegmentParts> processed1,
                                     double near)
        {
            var errorCount = 0;

            IPairRowsDistance connectedRowsDistance =
                _connectedMinLengthProvider.GetRowsDistance(feat0, tableIndex);
            double connectedMinLength = connectedRowsDistance.GetAddedDistance(
                feat1, neighborTableIndex);

            IPairRowsDistance disjointRowsDistance =
                _defaultUnconnectedMinLengthProvider.GetRowsDistance(feat0, tableIndex);
            double disjointMinLength = disjointRowsDistance.GetAddedDistance(
                feat1, neighborTableIndex);

            errorCount += CheckPartCoincidence(feat0, feat1, processed0, _coincidentParts,
                                               near, connectedMinLength, disjointMinLength);

            processed0.Clear();
            processed1.Clear();
            _coincidentParts.Clear();

            return(errorCount);
        }