public static void TestCR254240()
 {
     com.epl.geometry.OperatorProximity2D proximityOp = com.epl.geometry.OperatorProximity2D.Local();
     com.epl.geometry.Point    inputPoint             = new com.epl.geometry.Point(-12, 12);
     com.epl.geometry.Polyline line = new com.epl.geometry.Polyline();
     line.StartPath(-10, 0);
     line.LineTo(0, 0);
     com.epl.geometry.Proximity2DResult result = proximityOp.GetNearestCoordinate(line, inputPoint, false, true);
     NUnit.Framework.Assert.IsTrue(result.IsRightSide() == false);
 }
 public static void TestProximity2D_3()
 {
     com.epl.geometry.OperatorFactoryLocal factory   = com.epl.geometry.OperatorFactoryLocal.GetInstance();
     com.epl.geometry.OperatorProximity2D  proximity = (com.epl.geometry.OperatorProximity2D)factory.GetOperator(com.epl.geometry.Operator.Type.Proximity2D);
     com.epl.geometry.Polygon polygon = new com.epl.geometry.Polygon();
     polygon.StartPath(new com.epl.geometry.Point(-120, 22));
     polygon.LineTo(new com.epl.geometry.Point(-120, 10));
     polygon.LineTo(new com.epl.geometry.Point(-110, 10));
     polygon.LineTo(new com.epl.geometry.Point(-110, 22));
     com.epl.geometry.Point point = new com.epl.geometry.Point();
     point.SetXY(-110, 20);
     com.epl.geometry.Proximity2DResult result = proximity.GetNearestCoordinate(polygon, point, false);
     com.epl.geometry.Point             point2 = new com.epl.geometry.Point();
     point2.SetXY(-120, 12);
     com.epl.geometry.Proximity2DResult[] results = proximity.GetNearestVertices(polygon, point2, 10, 12);
 }
        public virtual void TestProximity_2D_1()
        {
            com.epl.geometry.OperatorFactoryLocal engine      = com.epl.geometry.OperatorFactoryLocal.GetInstance();
            com.epl.geometry.OperatorProximity2D  proximityOp = (com.epl.geometry.OperatorProximity2D)engine.GetOperator(com.epl.geometry.Operator.Type.Proximity2D);
            com.epl.geometry.Point inputPoint = new com.epl.geometry.Point(3, 2);
            com.epl.geometry.Point point0     = new com.epl.geometry.Point(2.75, 2);
            // Point point1 = new Point(3, 2.5);
            // Point point2 = new Point(3.75, 2);
            // Point point3 = new Point(2.25, 2.5);
            // Point point4 = new Point(4, 2.25);
            // GetNearestVertices for Polygon (Native and DotNet)
            com.epl.geometry.Polygon             polygon     = MakePolygon();
            com.epl.geometry.Proximity2DResult[] resultArray = com.epl.geometry.GeometryEngine.GetNearestVertices(polygon, inputPoint, 2.0, 8);
            NUnit.Framework.Assert.IsTrue(resultArray.Length == 8);
            double lastdistance;
            double distance;

            com.epl.geometry.Proximity2DResult result0 = resultArray[0];
            lastdistance = result0.GetDistance();
            NUnit.Framework.Assert.IsTrue(lastdistance <= 2.0);
            com.epl.geometry.Proximity2DResult result1 = resultArray[1];
            distance = result1.GetDistance();
            NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
            lastdistance = distance;
            com.epl.geometry.Proximity2DResult result2 = resultArray[2];
            distance = result2.GetDistance();
            NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
            lastdistance = distance;
            com.epl.geometry.Proximity2DResult result3 = resultArray[3];
            distance = result3.GetDistance();
            NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
            lastdistance = distance;
            com.epl.geometry.Proximity2DResult result4 = resultArray[4];
            distance = result4.GetDistance();
            NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
            lastdistance = distance;
            com.epl.geometry.Proximity2DResult result5 = resultArray[5];
            distance = result5.GetDistance();
            NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
            lastdistance = distance;
            com.epl.geometry.Proximity2DResult result6 = resultArray[6];
            distance = result6.GetDistance();
            NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
            lastdistance = distance;
            com.epl.geometry.Proximity2DResult result7 = resultArray[7];
            distance = result7.GetDistance();
            NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
            // lastdistance = distance;
            // Point[] coordinates = polygon.get.getCoordinates2D();
            // int pointCount = polygon.getPointCount();
            //
            // int hits = 0;
            // for (int i = 0; i < pointCount; i++)
            // {
            // Point ipoint = coordinates[i];
            // distance = Point::Distance(ipoint, inputPoint);
            //
            // if (distance < lastdistance)
            // hits++;
            // }
            // assertTrue(hits < 8);
            // GetNearestVertices for Point
            com.epl.geometry.Point point = MakePoint();
            resultArray = com.epl.geometry.GeometryEngine.GetNearestVertices(point, inputPoint, 1.0, 1);
            NUnit.Framework.Assert.IsTrue(resultArray.Length == 1);
            result0 = resultArray[0];
            com.epl.geometry.Point resultPoint0 = result0.GetCoordinate();
            NUnit.Framework.Assert.IsTrue(resultPoint0.GetX() == point.GetX() && resultPoint0.GetY() == point.GetY());
            // GetNearestVertex for Polygon
            result0      = com.epl.geometry.GeometryEngine.GetNearestVertex(polygon, inputPoint);
            resultPoint0 = result0.GetCoordinate();
            NUnit.Framework.Assert.IsTrue(resultPoint0.GetX() == point0.GetX() && resultPoint0.GetY() == point0.GetY());
            // GetNearestVertex for Point
            result0      = com.epl.geometry.GeometryEngine.GetNearestVertex(point, inputPoint);
            resultPoint0 = result0.GetCoordinate();
            NUnit.Framework.Assert.IsTrue(resultPoint0.GetX() == point.GetX() && resultPoint0.GetY() == point.GetY());
            // GetNearestCoordinate for Polygon
            com.epl.geometry.Polygon polygon2 = MakePolygon2();
            result0      = com.epl.geometry.GeometryEngine.GetNearestCoordinate(polygon2, inputPoint, true);
            resultPoint0 = result0.GetCoordinate();
            NUnit.Framework.Assert.IsTrue(resultPoint0.GetX() == inputPoint.GetX() && resultPoint0.GetY() == inputPoint.GetY());
            // GetNearestCoordinate for Polyline
            com.epl.geometry.Polyline polyline = MakePolyline();
            result0      = com.epl.geometry.GeometryEngine.GetNearestCoordinate(polyline, inputPoint, true);
            resultPoint0 = result0.GetCoordinate();
            NUnit.Framework.Assert.IsTrue(resultPoint0.GetX() == 0.0 && resultPoint0.GetY() == 2.0);
            com.epl.geometry.Polygon pp = new com.epl.geometry.Polygon();
            pp.StartPath(0, 0);
            pp.LineTo(0, 10);
            pp.LineTo(10, 10);
            pp.LineTo(10, 0);
            inputPoint.SetXY(15, -5);
            result0 = proximityOp.GetNearestCoordinate(pp, inputPoint, true, true);
            bool is_right = result0.IsRightSide();

            NUnit.Framework.Assert.IsTrue(!is_right);
        }
Пример #4
0
 /// <summary>
 /// Finds all vertices in the given distance from the specified point, sorted
 /// from the closest to the furthest.
 /// </summary>
 /// <remarks>
 /// Finds all vertices in the given distance from the specified point, sorted
 /// from the closest to the furthest.
 /// See OperatorProximity2D.
 /// </remarks>
 /// <param name="inputPoint">The point to start from.</param>
 /// <param name="geometry">The geometry to consider.</param>
 /// <param name="searchRadius">The search radius.</param>
 /// <param name="maxVertexCountToReturn">The maximum number number of vertices to return.</param>
 /// <returns>Proximity2DResult containing the array of nearest vertices.</returns>
 public static com.epl.geometry.Proximity2DResult[] GetNearestVertices(com.epl.geometry.Geometry geometry, com.epl.geometry.Point inputPoint, double searchRadius, int maxVertexCountToReturn)
 {
     com.epl.geometry.OperatorProximity2D proximity = (com.epl.geometry.OperatorProximity2D)factory.GetOperator(com.epl.geometry.Operator.Type.Proximity2D);
     com.epl.geometry.Proximity2DResult[] results   = proximity.GetNearestVertices(geometry, inputPoint, searchRadius, maxVertexCountToReturn);
     return(results);
 }
Пример #5
0
 /// <summary>
 /// Finds nearest vertex on the geometry which is closed to the specified
 /// point.
 /// </summary>
 /// <remarks>
 /// Finds nearest vertex on the geometry which is closed to the specified
 /// point.
 /// See OperatorProximity2D.
 /// </remarks>
 /// <param name="inputPoint">The point to find the nearest vertex of the geometry for.</param>
 /// <param name="geometry">The geometry to consider.</param>
 /// <returns>Proximity2DResult containing the nearest vertex.</returns>
 public static com.epl.geometry.Proximity2DResult GetNearestVertex(com.epl.geometry.Geometry geometry, com.epl.geometry.Point inputPoint)
 {
     com.epl.geometry.OperatorProximity2D proximity = (com.epl.geometry.OperatorProximity2D)factory.GetOperator(com.epl.geometry.Operator.Type.Proximity2D);
     com.epl.geometry.Proximity2DResult   result    = proximity.GetNearestVertex(geometry, inputPoint);
     return(result);
 }
Пример #6
0
 /// <summary>
 /// Finds the coordinate of the geometry which is closest to the specified
 /// point.
 /// </summary>
 /// <remarks>
 /// Finds the coordinate of the geometry which is closest to the specified
 /// point.
 /// See OperatorProximity2D.
 /// </remarks>
 /// <param name="inputPoint">The point to find the nearest coordinate in the geometry for.</param>
 /// <param name="geometry">The geometry to consider.</param>
 /// <returns>Proximity2DResult containing the nearest coordinate.</returns>
 public static com.epl.geometry.Proximity2DResult GetNearestCoordinate(com.epl.geometry.Geometry geometry, com.epl.geometry.Point inputPoint, bool bTestPolygonInterior)
 {
     com.epl.geometry.OperatorProximity2D proximity = (com.epl.geometry.OperatorProximity2D)factory.GetOperator(com.epl.geometry.Operator.Type.Proximity2D);
     com.epl.geometry.Proximity2DResult   result    = proximity.GetNearestCoordinate(geometry, inputPoint, bTestPolygonInterior);
     return(result);
 }