public void OnTopVisible(IViewPortCalculation calculation)
        {
            Calculation = calculation;
            var eventArgs = new ViewPortEventArgs(calculation);

            if (OnTopVisibleUpdated != null)
            {
                OnTopVisibleUpdated?.Invoke(eventArgs);
            }
        }
        public void OnBottomPassedReverse(IViewPortCalculation calculation)
        {
            Calculation = calculation;
            var eventArgs = new ViewPortEventArgs(calculation);

            if (OnBottomPassedReverseUpdated != null)
            {
                OnBottomPassedReverseUpdated?.Invoke(eventArgs);
            }
        }
        public void OnUpdate(IViewPortCalculation calculation)
        {
            Calculation = calculation;
            var eventArgs = new ViewPortEventArgs(calculation);

            if (OnVisibilityUpdated != null)
            {
                OnVisibilityUpdated?.Invoke(eventArgs);
            }
            // Console.WriteLine("Visibility Updated");
        }