public static bool isNeighbour(NavigationMeshPoly poly1, NavigationMeshPoly poly2)
        {
            foreach (WorldVector3 vec1 in poly1.Vertices)
            {
                foreach (WorldVector3 vec2 in poly2.Vertices)
                {
                    if (WorldVector3.@equals(vec1, vec2))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
 //Method to get the directional angle of two WorldVector3, also know as "gon"
 public static double directionalAngle(WorldVector3 vec1, WorldVector3 vec2)
 {
     if ((vec2.Y - vec1.Y) > 0 && (vec2.X - vec1.X) > 0)
     {
         return(radianToGon(Math.Atan((vec2.Y - vec1.Y) / (vec2.X - vec1.X))));
     }
     if (
         (vec2.Y - vec1.Y) > 0 && (vec2.X - vec1.X) < 0 ||
         (vec2.Y - vec1.Y) < 0 && (vec2.X - vec1.X) < 0)
     {
         return(radianToGon(Math.Atan((vec2.Y - vec1.Y) / (vec2.X - vec1.X))) + 200);
     }
     if ((vec2.Y - vec1.Y) < 0 && (vec2.X - vec1.X) > 0)
     {
         return(radianToGon(Math.Atan((vec2.Y - vec1.Y) / (vec2.X - vec1.X))) + 400);
     }
     return(radianToGon(Math.Atan((vec2.Y - vec1.Y) / (vec2.X - vec1.X))));
 }
 //Method to check if two WorldVelctor3s are equal
 public static bool equals(WorldVector3 vec1, WorldVector3 vec2)
 {
     return(vec1.X == vec2.X && vec1.Y == vec2.Y && vec1.Z == vec2.Z);
 }