コード例 #1
0
    public ViewChunk[] View()
    {
        Point observerPoint = space.GetPointFromPosition(observer.position);

        if (view == null || !space.IsPointInRange(observerPoint, previousObserverPoint, updateDistace))
        {
            previousObserverPoint = observerPoint;
            view = GetVisible(observerPoint);
        }
        return(view);
    }
コード例 #2
0
    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);
    }