public ViewChunk[] View() { Point observerPoint = space.GetPointFromPosition(observer.position); if (view == null || !space.IsPointInRange(observerPoint, previousObserverPoint, updateDistace)) { previousObserverPoint = observerPoint; view = GetVisible(observerPoint); } return(view); }
public ViewChunk[] View() { Point observerPoint = space.GetPointFromPosition(observer.position); float altitude = space.GetDistanceFromSurface(observer.position); if (view == null) { previousObserverPoint = observerPoint; previousObserverAltitude = altitude; view = GetVisible(observerPoint); return(view); } bool pointIsOutsideUpdateDistance = !space.IsPointInRange(observerPoint, previousObserverPoint, updateDistace); // In this viewer we are also interesed in movement along the space normal bool normalDimensionIsOutsideUpdateDistance = Mathf.Abs(altitude - previousObserverAltitude) > updateDistace; if (pointIsOutsideUpdateDistance || normalDimensionIsOutsideUpdateDistance) { previousObserverPoint = observerPoint; previousObserverAltitude = altitude; view = GetVisible(observerPoint); } return(view); }