Beispiel #1
0
        /// <summary>
        /// Shortest distance from box to circle
        /// </summary>
        public double DistanceTo(Circle3d c)
        {
            if (c.Center.IsInside(this))
            {
                return(0);
            }
            double min_dist = Double.PositiveInfinity;

            foreach (Triangle triangle in ListOfTriangles)
            {
                double dist = c.DistanceTo(triangle);
                if (dist < min_dist)
                {
                    min_dist = dist;
                }
            }
            return(min_dist);
        }
Beispiel #2
0
 /// <summary>
 /// Shortest distance between plane and circle (including interior points)
 /// </summary>
 /// <param name="c">Target circle</param>
 /// <param name="point_on_plane">Closest point on plane</param>
 /// <param name="point_on_circle">Closest point on circle</param>
 public double DistanceTo(Circle3d c, out Point3d point_on_plane, out Point3d point_on_circle)
 {
     return(c.DistanceTo(this, out point_on_circle, out point_on_plane));
 }
Beispiel #3
0
 /// <summary>
 /// Distance from plane to circle
 /// </summary>
 public double DistanceTo(Circle3d c)
 {
     return(c.DistanceTo(this));
 }
Beispiel #4
0
 /// <summary>
 /// Shortest distance between sphere and circle (including interior points) (approximate solution).
 /// <para> The output points may be not unique in case of intersecting objects.</para>
 /// </summary>
 /// <param name="c">Target circle</param>
 /// <param name="p1">Closest point on sphere</param>
 /// <param name="p2">Closest point on circle</param>
 public double DistanceTo(Circle3d c, out Point3d p1, out Point3d p2)
 {
     return(c.DistanceTo(this, out p2, out p1));
 }
Beispiel #5
0
        /// <summary>
        /// Shortest distance between triangle and circle (including interior points)
        /// </summary>
        public double DistanceTo(Circle3d c)
        {
            Point3d point_on_circle, point_on_triangle;

            return(c.DistanceTo(this, out point_on_circle, out point_on_triangle));
        }
Beispiel #6
0
 /// <summary>
 /// Shortest distance between segment and circle (including interior points)
 /// </summary>
 /// <param name="c">Target circle</param>
 /// <param name="point_on_segment">Closest point on segment</param>
 /// <param name="point_on_circle">Closest point on circle</param>
 public double DistanceTo(Circle3d c, out Point3d point_on_segment, out Point3d point_on_circle)
 {
     return(c.DistanceTo(this, out point_on_circle, out point_on_segment));
 }