public float?IntersectsWithRay(TriangulatorVector2 origin, TriangulatorVector2 direction) { float largestDistance = MathHelper.Max(A.Position.X - origin.X, B.Position.X - origin.X) * 2f; LineSegment raySegment = new LineSegment(new Vertex(origin, 0), new Vertex(origin + direction * largestDistance, 0)); TriangulatorVector2?intersection = FindIntersection(this, raySegment); float?value = null; if (intersection != null) { value = TriangulatorVector2.Distance(origin, intersection.Value); } return(value); }
public Vertex(TriangulatorVector2 position, int index) { Position = position; Index = index; }