コード例 #1
0
        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);
        }
コード例 #2
0
 public Vertex(TriangulatorVector2 position, int index)
 {
     Position = position;
     Index    = index;
 }