public Scalar Intersects(LineSegment line) { Scalar result; line.Intersects(ref this, out result); return(result); }
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; } } }
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; } } } }
public void Intersects(ref LineSegment line, out Scalar result) { line.Intersects(ref this, out result); }