private static double FindIntersection(IList <RendererHelper.StarMoved> stars, RendererHelper.StarMoved skipStar, Geometry.Point origin, Geometry.Vector vector, out RendererHelper.StarMoved outStar) { outStar = null; double minP = double.PositiveInfinity; foreach (RendererHelper.StarMoved star in stars) { if (star == skipStar) { continue; } double p = Geometry.GetIntersectionMin(origin, vector, star.sphere); if (double.IsNaN(p) || double.IsInfinity(p)) { continue; } if (p < minP) { minP = p; outStar = star; } } return(minP); }
private static double FindIntersection(IList <RendererHelper.StarMoved> stars, RendererHelper.StarMoved skipStar, Geometry.Line ray, out RendererHelper.StarMoved outStar) { return(FindIntersection(stars, skipStar, ray.origin, ray.vector, out outStar)); }