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");
        }
        ///-------------------------------------------------------------------------------------------------
        /// <summary>   Creating new Element Viewport Visibility Change Event Arguments. </summary>
        ///
        /// <param name="calculation">  The visibility calculations after the change. </param>
        ///-------------------------------------------------------------------------------------------------

        public ViewPortEventArgs(IViewPortCalculation calculation)
        {
            Calculation = calculation;
        }