Example #1
0
        private IntersectionInfo GetFirstIntersection(Ray r)
        {
            IntersectionInfo result   = null;
            double           distance = Double.MaxValue;

            IEnumerator <IGraphicsObject3D> graphicsObjects = scene.GraphicsObjects;

            graphicsObjects.Reset();

            while (graphicsObjects.MoveNext())
            {
                IGraphicsObject3D obj  = graphicsObjects.Current;
                IntersectionInfo  info = obj.Intersection(r);
                if (info != null)
                {
                    if (VectorOperations.Distance(info.CrossPoint, r.Origin) < distance)
                    {
                        distance = VectorOperations.Distance(info.CrossPoint, r.Origin);
                        result   = info;
                    }
                }
            }
            return(result);
        }
Example #2
0
 public void AddGraphicsObject(IGraphicsObject3D obj)
 {
     graphicObjects.Add(obj);
 }