private void Camera1_CameraChanged(object sender, Ab3d.Common.Cameras.CameraChangedRoutedEventArgs e)
 {
     if (!_isAdjustingDistance && (AutoAdjustCheckBox.IsChecked ?? false))
     {
         FitIntoView();
     }
 }
Exemplo n.º 2
0
        void Camera1_CameraChanged(object sender, Ab3d.Common.Cameras.CameraChangedRoutedEventArgs e)
        {
            // If automatic line updating is disabled, we can manually refresh the lines
            // This can be done with checking if the Heading property of the camera has been changed enough
            // For example if TwentyDegreesRadioButton is checked, this means that we will not update the lines until the Heading is changed for 20 degrees
            // Because recreation of big number of 3d lines can take some time, manually updating the lines can improve the performance significantly
            // If the change angle is not too big and the lines are not wide (in our sample the LineThicness is 2) the user should not see any anomalies on the lines.
            if (ManualRefreshPanel.IsEnabled)
            {
                double headingChangeAngle = GetCurrentHeadingChangeAngle();

                if (headingChangeAngle == 0)
                {
                    RefreshLines();
                }
                else if (headingChangeAngle != double.MaxValue)
                {
                    double currentHeading = Camera1.Heading;

                    if (currentHeading < _lastRefreshedHeading)
                    {
                        // angle changed from 360 to 0
                        _lastRefreshedHeading -= 360;
                    }

                    if ((currentHeading - _lastRefreshedHeading) > headingChangeAngle)
                    {
                        RefreshLines();
                    }
                }
            }
        }
Exemplo n.º 3
0
        private void SceneCamera2_CameraChanged(object sender, Ab3d.Common.Cameras.CameraChangedRoutedEventArgs e)
        {
            // Enclose changes in BeginInit and EndInit to prevent multiple updates
            SceneCamera1.BeginInit();

            SceneCamera1.Heading  = SceneCamera2.Heading;
            SceneCamera1.Attitude = SceneCamera2.Attitude;
            SceneCamera1.Distance = SceneCamera2.Distance;

            SceneCamera1.EndInit();
        }
Exemplo n.º 4
0
        private void SceneCamera1_CameraChanged(object sender, Ab3d.Common.Cameras.CameraChangedRoutedEventArgs e)
        {
            if (!this.IsLoaded)
            {
                return;
            }

            _cameraChangedCounter++;

            UpdateCounters();
        }
Exemplo n.º 5
0
        private void SceneCamera2_CameraChanged(object sender, Ab3d.Common.Cameras.CameraChangedRoutedEventArgs e)
        {
            // Manually sync the camera in Viewport3D in upper right corner with the main camera
            // Enclose changes in BeginInit and EndInit to prevent multiple updates
            SceneCamera1.BeginInit();

            SceneCamera1.Heading  = SceneCamera2.Heading;
            SceneCamera1.Attitude = SceneCamera2.Attitude;
            SceneCamera1.Distance = SceneCamera2.Distance;

            SceneCamera1.EndInit();
        }