Beispiel #1
0
    public float Heuristic(Node n1, Node n2)
    {
        NavMeshNode node1 = (NavMeshNode)n1;
        NavMeshNode node2 = (NavMeshNode)n2;

        return(DistanceMetrics.Euclidean(node1.Position, node2.Position));
    }
                public void TestPointToPlane_PointToBackOfPlane()
                {
                    Point staticPoint = new Point(new Vector3(-5, -3, 6));

                    float expected = -5;
                    float actual   = DistanceMetrics.PointToPlane(staticPoint, modelPoint);

                    Assert.AreEqual(expected, actual, tolerance);
                }
                public void TestPointToPlane_PointInFrontOfPlane()
                {
                    Point staticPoint = new Point(new Vector3(3, 5, 7));

                    float expected = 3;
                    float actual   = DistanceMetrics.PointToPlane(staticPoint, modelPoint);

                    Assert.AreEqual(expected, actual, tolerance);
                }
                public void TestSquardEuclideanDistance_NegativeElements()
                {
                    Point a = new Point(new Vector3(+9.1f, -2.3f, +3.4f));
                    Point b = new Point(new Vector3(-4.5f, +5.6f, -6.7f));

                    float expected = 349.3800000000000f;
                    float actual   = DistanceMetrics.SquaredEuclidean(a, b);

                    Assert.AreEqual(expected, actual, tolerance);
                }
                public void TestSquardEuclideanDistance_Three()
                {
                    Point a = new Point(new Vector3(9.1f, 2.3f, 3.4f));
                    Point b = new Point(new Vector3(4.5f, 5.6f, 6.7f));

                    float expected = 42.939999999999998f;
                    float actual   = DistanceMetrics.SquaredEuclidean(a, b);

                    Assert.AreEqual(expected, actual, tolerance);
                }
                public void TestSquardEuclideanDistance_Two()
                {
                    Point a = new Point(new Vector3(3.4f, 4.5f, 5.6f));
                    Point b = new Point(new Vector3(6.7f, 7.8f, 8.9f));

                    float expected = 32.670000000000002f;
                    float actual   = DistanceMetrics.SquaredEuclidean(a, b);

                    Assert.AreEqual(expected, actual, tolerance);
                }
                public void TestSquardEuclideanDistance_One()
                {
                    Point a = new Point(new Vector3(1.0f, 2.0f, 3.0f));
                    Point b = new Point(new Vector3(2.0f, 3.0f, 4.0f));

                    float expected = 3.000000000000000f;
                    float actual   = DistanceMetrics.SquaredEuclidean(a, b);

                    Assert.AreEqual(expected, actual, tolerance);
                }
        public void CalculateDistance_ReturnsCorrectDistanceBetweenTwoPoints(double point1Lat, double point1Long, double point2Lat, double point2Long, double expectedDistanceBetweenPoints)
        {
            // Arrange
            var point1 = new double[] { point1Lat, point1Long };
            var point2 = new double[] { point2Lat, point2Long };

            // Act
            var actualDistance = DistanceMetrics.CalculateDistance(point1, point2);

            // Assert
            actualDistance.Should().Be(expectedDistanceBetweenPoints);
        }
Beispiel #9
0
        /// <summary>
        /// Calculates the distance between this location and another one, in meters.
        /// </summary>
        public double CalculateDistance(Location location)
        {
            var point1 = new[]
            {
                this.Latitude,
                this.Longitude
            };

            var point2 = new[]
            {
                location.Latitude,
                location.Longitude
            };

            return(DistanceMetrics.CalculateDistance(point1, point2));
        }