예제 #1
0
        // Token: 0x06000027 RID: 39 RVA: 0x00002840 File Offset: 0x00000A40
        public static Segment3 ShortestSegmentTo(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.ShortestSegmentTo(segment3.NegativeEnd));
            }
            Line3             line2             = new Line3(segment3.PositiveEnd, -segment3.Direction);
            DistanceLine3Arc3 distanceLine3Arc2 = new DistanceLine3Arc3(line2, arc3);

            if (distanceLine3Arc2.LineParameter < 0.0)
            {
                return(arc3.ShortestSegmentTo(segment3.PositiveEnd));
            }
            return(new Segment3(distanceLine3Arc2.ClosestPointOnArc, distanceLine3Arc2.ClosestPointOnLine));
        }
예제 #2
0
        // Token: 0x06000024 RID: 36 RVA: 0x000026B0 File Offset: 0x000008B0
        public static Segment3 ShortestSegmentTo(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.ShortestSegmentTo(ray3.Origin));
            }
            return(new Segment3(distanceLine3Arc.ClosestPointOnArc, distanceLine3Arc.ClosestPointOnLine));
        }
예제 #3
0
        // Token: 0x060001A5 RID: 421 RVA: 0x00007B34 File Offset: 0x00005D34
        public static Segment3 ShortestSegmentTo(this Segment3 segment3, Arc3 arc3)
        {
            Segment3 segment4 = arc3.ShortestSegmentTo(segment3);

            return(new Segment3(segment4.PositiveEnd, segment4.NegativeEnd));
        }