예제 #1
0
        // Token: 0x06000026 RID: 38 RVA: 0x000027A8 File Offset: 0x000009A8
        public static Vector3 ClosestPointTo(this Arc3 arc3, Segment3 segment3)
        {
            Line3             line             = new Line3(segment3.NegativeEnd, segment3.Direction);
            DistanceLine3Arc3 distanceLine3Arc = new DistanceLine3Arc3(line, arc3);

            if (distanceLine3Arc.LineParameter < 0.0)
            {
                return(arc3.ClosestPointTo(segment3.NegativeEnd));
            }
            Line3             line2             = new Line3(segment3.PositiveEnd, -segment3.Direction);
            DistanceLine3Arc3 distanceLine3Arc2 = new DistanceLine3Arc3(line2, arc3);

            if (distanceLine3Arc2.LineParameter < 0.0)
            {
                return(arc3.ClosestPointTo(segment3.PositiveEnd));
            }
            return(distanceLine3Arc2.ClosestPointOnArc);
        }
예제 #2
0
        // Token: 0x06000023 RID: 35 RVA: 0x0000265C File Offset: 0x0000085C
        public static Vector3 ClosestPointTo(this Arc3 arc3, Ray3 ray3)
        {
            Line3             line             = new Line3(ray3.Origin, ray3.Direction);
            DistanceLine3Arc3 distanceLine3Arc = new DistanceLine3Arc3(line, arc3);

            if (distanceLine3Arc.LineParameter < 0.0)
            {
                return(arc3.ClosestPointTo(ray3.Origin));
            }
            return(distanceLine3Arc.ClosestPointOnArc);
        }