/// <summary> /// Start rendering full Animation. /// </summary> private void btnStart_Click(object sender, EventArgs e) { _pictureSize = ParameterDict.Current.GetDouble("Animation.Size"); _animationSmooth = ParameterDict.Current.GetBool("Animation.Smooth"); _inAnimation = true; ParameterInput.MainParameterInput.SetButtonsToStart(); CreateAnimationSteps(tbAnimationDescription.Text); if (_animationSteps.Steps.Count == 0) { return; } btnStart.Enabled = false; btnStop.Enabled = true; btnStop.Visible = true; _animationAbort = false; lblAnimationProgress.Text = "run ..."; // Prepare AnimationHistory ParameterHistory animationHistory = new ParameterHistory(); for (int i = 0; i < _animationSteps.Steps.Count; i++) { AnimationPoint ap = _animationSteps.Steps[i]; _dataPerTime.Load(ap.Time); ParameterDict.Current.SetDouble("View.Size", _pictureSize); animationHistory.Save(); } // Compute each Animation frame. for (int i = 1; i < _animationSteps.Steps.Count; i++) { AnimationPoint ap1 = _animationSteps.Steps[i - 1]; AnimationPoint ap2 = _animationSteps.Steps[i]; ComputeAnimationPart(ap1.Time, ap2.Time, ap2.Steps, animationHistory, i - 1); if (_animationAbort) { break; } } if (_animationSteps.Steps.Count > 0) { ComputeAnimationPart(_animationSteps.Steps[_animationSteps.Steps.Count - 1].Time, _animationSteps.Steps[_animationSteps.Steps.Count - 1].Time, 1, animationHistory, _animationSteps.Steps.Count - 1); } btnStop.Visible = false; btnStart.Enabled = true; lblAnimationProgress.Text = "ready"; _animationAbort = false; _inAnimation = false; ParameterInput.MainParameterInput.SetButtonsToStop(); }
/// <summary> /// Rendering of one preview image is ready. /// </summary> void mPreview1_RenderingEnds() { if (_currentPreviewStep >= _animationSteps.Steps.Count) { _inRenderingPreview = false; _currentPreviewStep = 0; btnPreview.Enabled = true; return; } if (!_inRenderingPreview) { return; } // Load data of currentPreviewStep: AnimationPoint ap = _animationSteps.Steps[_currentPreviewStep]; ParameterHistory animationHistory = new ParameterHistory(); _dataPerTime.Load(ap.Time); animationHistory.Save(); PreviewControl mPreview1 = new Fractrace.PreviewControl(0); mPreview1.Width = _previewWidth; mPreview1.Height = _previewHeight; mPreview1.Location = new System.Drawing.Point(_previewWidth * _currentPreviewStep, 0); pnlPreview.Controls.Add(mPreview1); mPreview1.ShowProgressBar = false; mPreview1.RenderOnClick = false; AnimationStepPreview stepInfo = new AnimationStepPreview(); stepInfo.Width = _previewWidth; stepInfo.Height = 30; // _previewHeight; stepInfo.Location = new System.Drawing.Point(_previewWidth * _currentPreviewStep, _previewHeight); pnlPreview.Controls.Add(stepInfo); int steps = 0; if (_animationSteps.Steps.Count > _currentPreviewStep + 1) { steps = _animationSteps.Steps[_currentPreviewStep + 1].Steps; } stepInfo.Init(ap.Time, steps); _stepPreviewControls[ap.Time] = stepInfo; _currentPreviewStep++; mPreview1.RenderingEnds += new PictureRenderingIsReady(mPreview1_RenderingEnds); mPreview1.Draw(); }
/// <summary> /// Rendering of one preview image is ready. /// </summary> void mPreview1_RenderingEnds() { if (_currentPreviewStep >= _animationSteps.Steps.Count) { _inRenderingPreview = false; _currentPreviewStep = 0; btnPreview.Enabled = true; return; } if (!_inRenderingPreview) return; // Load data of currentPreviewStep: AnimationPoint ap = _animationSteps.Steps[_currentPreviewStep]; ParameterHistory animationHistory = new ParameterHistory(); _dataPerTime.Load(ap.Time); animationHistory.Save(); PreviewControl mPreview1 = new Fractrace.PreviewControl(0); mPreview1.Width = _previewWidth ; mPreview1.Height = _previewHeight; mPreview1.Location = new System.Drawing.Point(_previewWidth * _currentPreviewStep, 0); pnlPreview.Controls.Add(mPreview1); mPreview1.ShowProgressBar = false; mPreview1.RenderOnClick = false; AnimationStepPreview stepInfo = new AnimationStepPreview(); stepInfo.Width = _previewWidth; stepInfo.Height = _previewHeight; stepInfo.Location = new System.Drawing.Point(_previewWidth * _currentPreviewStep, _previewHeight); pnlPreview.Controls.Add(stepInfo); int steps=0; if ( _animationSteps.Steps.Count>_currentPreviewStep+1 ) steps = _animationSteps.Steps[_currentPreviewStep+1].Steps; stepInfo.Init(ap.Time, steps); _stepPreviewControls[ap.Time] = stepInfo; _currentPreviewStep++; mPreview1.RenderingEnds += new PictureRenderingIsReady(mPreview1_RenderingEnds); mPreview1.Draw(); }
/// <summary> /// Start rendering full Animation. /// </summary> private void btnStart_Click(object sender, EventArgs e) { _pictureSize = ParameterDict.Current.GetDouble("Animation.Size"); _animationSmooth = ParameterDict.Current.GetBool("Animation.Smooth"); _inAnimation = true; ParameterInput.MainParameterInput.SetButtonsToStart(); CreateAnimationSteps(tbAnimationDescription.Text); if (_animationSteps.Steps.Count == 0) return; btnStart.Enabled = false; btnStop.Enabled = true; btnStop.Visible = true; _animationAbort = false; lblAnimationProgress.Text = "run ..."; // Prepare AnimationHistory ParameterHistory animationHistory = new ParameterHistory(); for (int i = 0; i < _animationSteps.Steps.Count; i++) { AnimationPoint ap = _animationSteps.Steps[i]; _dataPerTime.Load(ap.Time); ParameterDict.Current.SetDouble("View.Size", _pictureSize); animationHistory.Save(); } // Compute each Animation frame. for (int i = 1; i < _animationSteps.Steps.Count; i++) { AnimationPoint ap1 = _animationSteps.Steps[i - 1]; AnimationPoint ap2 = _animationSteps.Steps[i]; ComputeAnimationPart(ap1.Time, ap2.Time, ap2.Steps, animationHistory,i-1); if (_animationAbort) break; } if (_animationSteps.Steps.Count > 0) { ComputeAnimationPart(_animationSteps.Steps[_animationSteps.Steps.Count - 1].Time, _animationSteps.Steps[_animationSteps.Steps.Count - 1].Time, 1, animationHistory, _animationSteps.Steps.Count-1); } btnStop.Visible = false; btnStart.Enabled = true; lblAnimationProgress.Text = "ready"; _animationAbort = false; _inAnimation = false; ParameterInput.MainParameterInput.SetButtonsToStop(); }