public IEnumerator <Projection <TValue> > GetEnumerator() { if (Source == null || Target == null) { return(Enumerable.Empty <Projection <TValue> >().GetEnumerator()); } var arguments = new ProjectionVisitor <TValue> .Arguments(Value, Target, Raycasting, RaycastClient, Directions, DepthMax, ViewDepthMax); return(Source.Accept(_visitor, arguments).GetEnumerator()); }