Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        private void OnTimerTick(object sender, EventArgs e)
        {
            if (ImageVisual == null)
            {
                return;
            }
            int index = ImageVisual.GetImageIndex();

            index = (index + 1) % ImageVisual.GetNumberOfImages();
            ImageVisual.SetImageIndex(index);
        }
Exemplo n.º 3
0
        private void NextImage()
        {
            if (ImageVisual == null)
            {
                return;
            }
            _playTimer.Stop();
            int index = ImageVisual.GetImageIndex();

            index = (index + 1) % ImageVisual.GetNumberOfImages();
            ImageVisual.SetImageIndex(index);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        private void PreviousImage()
        {
            if (ImageVisual == null)
            {
                return;
            }
            _playTimer.Stop();
            int index = ImageVisual.GetImageIndex();

            index--;
            if (index < 0)
            {
                index = ImageVisual.GetNumberOfImages() - 1;
            }
            ImageVisual.SetImageIndex(index);
        }