Esempio n. 1
0
        public PointSet method_2(Ellipse ellipse)
        {
            if (this.Length < 4.94065645841247E-324)
            {
                if (ellipse.ContainsOnCircumference(this.StartPoint))
                {
                    return(new PointSet
                    {
                        this.startPoint,
                        this.endPoint
                    });
                }
                if (ellipse.GetPlane().Contains(this.StartPoint))
                {
                    return(new PointSet());
                }
                return(null);
            }
            else
            {
                PointSet pointSet = this.ToLine().method_2(ellipse);
                if (pointSet == null)
                {
                    return(null);
                }
                switch (pointSet.Count)
                {
                case 0:
                    return(pointSet);

                case 1:
                    if (!this.CollinearContains(pointSet[0]))
                    {
                        pointSet.RemoveAt(0);
                    }
                    return(pointSet);

                case 2:
                    if (!this.CollinearContains(pointSet[1]))
                    {
                        pointSet.RemoveAt(1);
                    }
                    if (!this.CollinearContains(pointSet[0]))
                    {
                        pointSet.RemoveAt(0);
                    }
                    return(pointSet);

                default:
                    return(null);
                }
            }
        }
Esempio n. 2
0
 public PointSet method_0(Triangle triangle)
 {
     if (this.Length < 4.94065645841247E-324)
     {
         if (triangle.ContainsOnCircumference(this.StartPoint))
         {
             return(new PointSet
             {
                 this.startPoint,
                 this.endPoint
             });
         }
         if (triangle.GetPlane().Contains(this.StartPoint))
         {
             return(new PointSet());
         }
         return(null);
     }
     else
     {
         PointSet pointSet = this.ToLine().method_0(triangle);
         if (pointSet == null)
         {
             return(null);
         }
         for (int i = pointSet.Count - 1; i >= 0; i--)
         {
             if (!this.CollinearContains(pointSet[i]))
             {
                 pointSet.RemoveAt(i);
             }
         }
         return(pointSet);
     }
 }