/// <summary> /// Update 3d view after directory has changed. /// </summary> /// <param name="dicomLoader">Updated dicom loader.</param> public void ChangeDirectory(DicomLoader dicomLoader) { _dicomLoader = dicomLoader; _mapper.Dispose(); _mapper = vtkSmartVolumeMapper.New(); _mapper.SetInput(_dicomLoader.GetOutput()); _mapper.Update(); _window.RenderWindow.GetRenderers().GetFirstRenderer().RemoveVolume(_volume); _volume.Dispose(); _volume = vtkVolume.New(); _volume.SetMapper(_mapper); _volume.Update(); _window.RenderWindow.GetRenderers().GetFirstRenderer().AddVolume(_volume); _window.RenderWindow.GetRenderers().GetFirstRenderer().Render(); SetupPlane(PlaneWidgetX); SetupPlane(PlaneWidgetY); SetupPlane(PlaneWidgetZ); // Render _window.RenderWindow.Render(); _window.Validate(); _window.Update(); _clipingModule = new ClipingObject(GetObjectSize()); }
/// <summary> /// Create vizualization 3D /// </summary> /// <param name="window">Orginal window component. </param> /// <param name="dicomLoader">Dicom input</param> public Visualization3D(RenderWindowControl window, DicomLoader dicomLoader) { _window = window; _dicomLoader = dicomLoader; // Create a mapper and actor _mapper = vtkSmartVolumeMapper.New(); _mapper.SetInput(_dicomLoader.GetOutput()); _volume = vtkVolume.New(); _volume.SetMapper(_mapper); renderer = vtkRenderer.New(); renderer.AddVolume(_volume); _window.RenderWindow.GetRenderers().RemoveAllItems(); _window.RenderWindow.AddRenderer(renderer); _window.RenderWindow.GetRenderers().GetFirstRenderer().AddVolume(_volume); //Create and setup planes PlaneWidgetX = new PlaneWidget(Axis.X); SetupPlane(PlaneWidgetX); PlaneWidgetY = new PlaneWidget(Axis.Y); SetupPlane(PlaneWidgetY); PlaneWidgetZ = new PlaneWidget(Axis.Z); SetupPlane(PlaneWidgetZ); //Camera style vtkInteractorStyleTrackballCamera style = vtkInteractorStyleTrackballCamera.New(); style.AutoAdjustCameraClippingRangeOff(); _window.RenderWindow.GetInteractor().SetInteractorStyle(style); PlaneWidgetX.SetInteractor(_window.RenderWindow.GetInteractor()); PlaneWidgetY.SetInteractor(_window.RenderWindow.GetInteractor()); PlaneWidgetZ.SetInteractor(_window.RenderWindow.GetInteractor()); // Render _window.RenderWindow.Render(); //ClipingObject _clipingModule = new ClipingObject(GetObjectSize()); }