private void App_CompositionTargertRenderingHandler(object source, EventArgs e)
        {
            if (CameraInteraction == null)
            {
                return;
            }

            var updateRequiredAfterCameraInteraction = CameraInteraction.UpdateAndCheckIfRedrawRequired();

            if (!updateRequiredAfterCameraInteraction)
            {
                /**
                 * If the current camera is an operator, and its parameter have been modified from
                 * the outside (e.g. through animation or in the ParameterView) we have to update
                 * the CameraSetup and the interaction. */
                var shouldUpdateFromCamOp = _camSetupProvider.SelectedOperatorIsCamProvider && !CameraInteraction.SmoothedMovementInProgress;
                if (shouldUpdateFromCamOp)
                {
                    var newPos    = _camSetupProvider.OperatorCameraProvider.GetLastPosition();
                    var newTarget = _camSetupProvider.OperatorCameraProvider.GetLastTarget();
                    CameraInteraction.SetCameraAfterExternalChanges(newPos, newTarget);
                    _camSetupProvider.ActiveCameraSetup.SetCameraAfterExternalChanges(newPos, newTarget);
                }
                return;
            }

            // Trigger update of other UI Elements like ParameterView
            // Because this will eventually triggere a RenderContent, we can skip rendering it here.
            if (_camSetupProvider.SelectedOperatorIsCamProvider)
            {
                App.Current.UpdateRequiredAfterUserInteraction = true;
            }

            RenderContent();
        }
Exemple #2
0
        private void App_CompositionTargertRenderingHandler(object source, EventArgs e)
        {
            if (CameraInteraction == null || !CameraInteraction.UpdateAndCheckIfRedrawRequired())
            {
                return;
            }

            // Check wether this is a basic op and works as a Camera
            if (_operator != null && _operator.InternalParts.Count > 0 && _operator.InternalParts[0].Func is ICameraProvider)
            {
                App.Current.UpdateRequiredAfterUserInteraction = true;
            }
            else
            {
                RenderContent();
            }
        }