public void Present(Scan scan) { var imageViewer = viewModel.ImageViewer; int centerImageIndex = scan.Volume.Slices.Count / 2; var firstImage = scan.Volume.Slices[centerImageIndex]; _imageVisual = new ImageVisual(scan.Volume); _imageVisual.SetImageIndex(centerImageIndex); imageViewer.ImageVisual = _imageVisual; imageViewer.Visuals.Add(_imageVisual); imageViewer.Tools.IsScrollActive = true; imageViewer.Camera.Zoom = firstImage.Height * firstImage.PixelSpacing.Y * 0.5; imageViewer.Camera.ViewportPan = Matrix.Translation(new Vector3(firstImage.Width * firstImage.PixelSpacing.X / 2, firstImage.Height * firstImage.PixelSpacing.Y / 2, 0)); imageViewer.WindowLevel = firstImage.WindowLevel; imageViewer.WindowWidth = firstImage.WindowWidth; var levelMin = firstImage.WindowLevel - firstImage.WindowWidth / 2; var levelMax = firstImage.WindowLevel + firstImage.WindowWidth / 2; imageViewer.Min = Math.Min(levelMin, firstImage.MinRescaledValue); imageViewer.Max = Math.Max(levelMax, firstImage.MaxRescaledValue); var range = imageViewer.Max - imageViewer.Min; imageViewer.Min -= range / 2; imageViewer.Max += range / 2; viewModel.SwitchTo2DCommand.Execute(null); }
private void OnTimerTick(object sender, EventArgs e) { if (ImageVisual == null) { return; } int index = ImageVisual.GetImageIndex(); index = (index + 1) % ImageVisual.GetNumberOfImages(); ImageVisual.SetImageIndex(index); }
private void NextImage() { if (ImageVisual == null) { return; } _playTimer.Stop(); int index = ImageVisual.GetImageIndex(); index = (index + 1) % ImageVisual.GetNumberOfImages(); ImageVisual.SetImageIndex(index); }
public bool MouseMove(Point position, Viewport viewport) { if (isMouseDown) { var delta = position - startPosition; var newIndex = (int)(startIndex + delta.Y / 20); newIndex = Math.Min(Math.Max(newIndex, 0), imageVisual.GetNumberOfImages() - 1); imageVisual.SetImageIndex(newIndex); return(true); } return(false); }
private void PreviousImage() { if (ImageVisual == null) { return; } _playTimer.Stop(); int index = ImageVisual.GetImageIndex(); index--; if (index < 0) { index = ImageVisual.GetNumberOfImages() - 1; } ImageVisual.SetImageIndex(index); }