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); } } }
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); } }