Esempio n. 1
0
        /// <summary>Returns squared max distance between two bounding boxes.</summary>
        /// <remarks>Returns squared max distance between two bounding boxes. This is furthest distance between points on the two envelopes.</remarks>
        /// <param name="other">The bounding box to calculate the max distance two.</param>
        /// <returns>Squared distance value.</returns>
        public double SqrMaxDistance(com.epl.geometry.Envelope2D other)
        {
            if (IsEmpty() || other.IsEmpty())
            {
                return(com.epl.geometry.NumberUtils.TheNaN);
            }
            double dist = 0;

            com.epl.geometry.Point2D[] points = new com.epl.geometry.Point2D[4];
            QueryCorners(points);
            com.epl.geometry.Point2D[] points_o = new com.epl.geometry.Point2D[4];
            other.QueryCorners(points_o);
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    double d = com.epl.geometry.Point2D.SqrDistance(points[i], points_o[j]);
                    if (d > dist)
                    {
                        dist = d;
                    }
                }
            }
            return(dist);
        }
Esempio n. 2
0
 public virtual void QueryCoordinates(com.epl.geometry.Point2D[] dst)
 {
     if (dst == null || dst.Length < 4 || m_envelope.IsEmpty())
     {
         throw new System.ArgumentException();
     }
     m_envelope.QueryCorners(dst);
 }
Esempio n. 3
0
 public virtual void TestEnvelope2D_corners()
 {
     com.epl.geometry.Envelope2D env = new com.epl.geometry.Envelope2D(0, 1, 2, 3);
     NUnit.Framework.Assert.IsFalse(env.Equals(null));
     NUnit.Framework.Assert.IsTrue(env.Equals((object)new com.epl.geometry.Envelope2D(0, 1, 2, 3)));
     com.epl.geometry.Point2D pt2D = env.GetLowerLeft();
     NUnit.Framework.Assert.IsTrue(pt2D.Equals(com.epl.geometry.Point2D.Construct(0, 1)));
     pt2D = env.GetUpperLeft();
     NUnit.Framework.Assert.IsTrue(pt2D.Equals(com.epl.geometry.Point2D.Construct(0, 3)));
     pt2D = env.GetUpperRight();
     NUnit.Framework.Assert.IsTrue(pt2D.Equals(com.epl.geometry.Point2D.Construct(2, 3)));
     pt2D = env.GetLowerRight();
     NUnit.Framework.Assert.IsTrue(pt2D.Equals(com.epl.geometry.Point2D.Construct(2, 1)));
     {
         com.epl.geometry.Point2D[] corners = new com.epl.geometry.Point2D[4];
         env.QueryCorners(corners);
         NUnit.Framework.Assert.IsTrue(corners[0].Equals(com.epl.geometry.Point2D.Construct(0, 1)));
         NUnit.Framework.Assert.IsTrue(corners[1].Equals(com.epl.geometry.Point2D.Construct(0, 3)));
         NUnit.Framework.Assert.IsTrue(corners[2].Equals(com.epl.geometry.Point2D.Construct(2, 3)));
         NUnit.Framework.Assert.IsTrue(corners[3].Equals(com.epl.geometry.Point2D.Construct(2, 1)));
         env.QueryCorners(corners);
         NUnit.Framework.Assert.IsTrue(corners[0].Equals(env.QueryCorner(0)));
         NUnit.Framework.Assert.IsTrue(corners[1].Equals(env.QueryCorner(1)));
         NUnit.Framework.Assert.IsTrue(corners[2].Equals(env.QueryCorner(2)));
         NUnit.Framework.Assert.IsTrue(corners[3].Equals(env.QueryCorner(3)));
     }
     {
         com.epl.geometry.Point2D[] corners = new com.epl.geometry.Point2D[4];
         env.QueryCornersReversed(corners);
         NUnit.Framework.Assert.IsTrue(corners[0].Equals(com.epl.geometry.Point2D.Construct(0, 1)));
         NUnit.Framework.Assert.IsTrue(corners[1].Equals(com.epl.geometry.Point2D.Construct(2, 1)));
         NUnit.Framework.Assert.IsTrue(corners[2].Equals(com.epl.geometry.Point2D.Construct(2, 3)));
         NUnit.Framework.Assert.IsTrue(corners[3].Equals(com.epl.geometry.Point2D.Construct(0, 3)));
         env.QueryCornersReversed(corners);
         NUnit.Framework.Assert.IsTrue(corners[0].Equals(env.QueryCorner(0)));
         NUnit.Framework.Assert.IsTrue(corners[1].Equals(env.QueryCorner(3)));
         NUnit.Framework.Assert.IsTrue(corners[2].Equals(env.QueryCorner(2)));
         NUnit.Framework.Assert.IsTrue(corners[3].Equals(env.QueryCorner(1)));
     }
     NUnit.Framework.Assert.IsTrue(env.GetCenter().Equals(com.epl.geometry.Point2D.Construct(1, 2)));
     NUnit.Framework.Assert.IsFalse(env.ContainsExclusive(env.GetUpperLeft()));
     NUnit.Framework.Assert.IsTrue(env.Contains(env.GetUpperLeft()));
     NUnit.Framework.Assert.IsTrue(env.ContainsExclusive(env.GetCenter()));
 }
 /// <summary>Transforms envelope</summary>
 /// <param name="env">The envelope that is to be transformed</param>
 internal void Transform(com.epl.geometry.Envelope2D env)
 {
     if (env.IsEmpty())
     {
         return;
     }
     com.epl.geometry.Point2D[] buf = new com.epl.geometry.Point2D[4];
     env.QueryCorners(buf);
     Transform(buf, buf);
     env.SetFromPoints(buf, 4);
 }