コード例 #1
0
        public Scalar Intersects(LineSegment line)
        {
            Scalar result;

            line.Intersects(ref this, out result);
            return(result);
        }
コード例 #2
0
 public void Intersects(ref Ray ray, out Scalar result)
 {
     result = -1;
     for (int index = 0; index < vertexes.Length; ++index)
     {
         int    index2 = (index + 1) % vertexes.Length;
         Scalar temp;
         LineSegment.Intersects(ref vertexes[index], ref vertexes[index2], ref ray, out temp);
         if (temp >= 0 && (result == -1 || temp < result))
         {
             result = temp;
         }
     }
 }
コード例 #3
0
        public static void Intersects(Vector2D[] vertexes1, Vector2D[] vertexes2, out bool result)
        {
            if (vertexes1 == null)
            {
                throw new ArgumentNullException("vertexes1");
            }
            if (vertexes2 == null)
            {
                throw new ArgumentNullException("vertexes2");
            }
            if (vertexes1.Length < 2)
            {
                throw new ArgumentOutOfRangeException("vertexes1");
            }
            if (vertexes2.Length < 2)
            {
                throw new ArgumentOutOfRangeException("vertexes2");
            }

            Vector2D v1, v2, v3, v4;

            v1     = vertexes1[vertexes1.Length - 1];
            v3     = vertexes2[vertexes2.Length - 1];
            result = false;
            for (int index1 = 0; index1 < vertexes1.Length; ++index1, v1 = v2)
            {
                v2 = vertexes1[index1];
                for (int index2 = 0; index2 < vertexes2.Length; ++index2, v3 = v4)
                {
                    v4 = vertexes2[index2];
                    LineSegment.Intersects(ref v1, ref v2, ref v3, ref v4, out result);
                    if (result)
                    {
                        return;
                    }
                }
            }
        }
コード例 #4
0
 public void Intersects(ref LineSegment line, out Scalar result)
 {
     line.Intersects(ref this, out result);
 }