Spatial4n.Core.Shapes.Impl.RectangleImpl.RelateXRange C# (CSharp) Méthode

RelateXRange() public méthode

public RelateXRange ( double ext_minX, double ext_maxX ) : SpatialRelation
ext_minX double
ext_maxX double
Résultat SpatialRelation
        public SpatialRelation RelateXRange(double ext_minX, double ext_maxX)
        {
            //For ext & this we have local minX and maxX variable pairs. We rotate them so that minX <= maxX
            double minX = this.minX;
            double maxX = this.maxX;
            if (ctx.IsGeo())
            {
                //unwrap dateline, plus do world-wrap short circuit
                double rawWidth = maxX - minX;
                if (rawWidth == 360)
                    return SpatialRelation.CONTAINS;
                if (rawWidth < 0)
                {
                    maxX = minX + (rawWidth + 360);
                }

                double ext_rawWidth = ext_maxX - ext_minX;
                if (ext_rawWidth == 360)
                    return SpatialRelation.WITHIN;
                if (ext_rawWidth < 0)
                {
                    ext_maxX = ext_minX + (ext_rawWidth + 360);
                }

                //shift to potentially overlap
                if (maxX < ext_minX)
                {
                    minX += 360;
                    maxX += 360;
                }
                else if (ext_maxX < minX)
                {
                    ext_minX += 360;
                    ext_maxX += 360;
                }
            }

            return Relate_Range(minX, maxX, ext_minX, ext_maxX);
        }