示例#1
0
        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);
        }
示例#2
0
 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));
 }