QExperimental3DViewer::QExperimental3DViewer(QWidget *parent) : QViewer(parent), m_volume(0) { vtkInteractorStyleSwitch *style = vtkInteractorStyleSwitch::New(); getInteractor()->SetInteractorStyle(style); style->SetCurrentStyleToTrackballCamera(); style->Delete(); m_renderer->SetBackground(1.0, 1.0, 1.0); m_vtkWidget->setAutomaticImageCacheEnabled(true); // avortar render AbortRenderCommand *abortRenderCommand = AbortRenderCommand::New(); m_vtkWidget->GetRenderWindow()->AddObserver(vtkCommand::AbortCheckEvent, abortRenderCommand); abortRenderCommand->Delete(); }
void Q3DMPRViewer::initializePlanes() { vtkCellPicker *picker = vtkCellPicker::New(); picker->SetTolerance(0.005); // Assignem les propietats per defecte vtkProperty *ipwProp = vtkProperty::New(); // Creem tres vistes ortogonals utilitzant la classe ImagePlaneWidget // m_axialImagePlaneWidget = vtkImagePlaneWidget::New(); m_sagitalImagePlaneWidget = vtkImagePlaneWidget::New(); m_coronalImagePlaneWidget = vtkImagePlaneWidget::New(); // Els 3 widgets s'utilizen per visualizar el model // (mostra imatges en 2D amb 3 orientacions diferents) // Pla AXIAL m_axialImagePlaneWidget->DisplayTextOn(); m_axialImagePlaneWidget->SetPicker(picker); m_axialImagePlaneWidget->RestrictPlaneToVolumeOn(); m_axialImagePlaneWidget->SetKeyPressActivationValue('z'); m_axialImagePlaneWidget->GetPlaneProperty()->SetColor(1., 1., .0); m_axialImagePlaneWidget->SetTexturePlaneProperty(ipwProp); m_axialImagePlaneWidget->TextureInterpolateOn(); m_axialImagePlaneWidget->SetResliceInterpolateToCubic(); // Pla SAGITAL m_sagitalImagePlaneWidget->DisplayTextOn(); m_sagitalImagePlaneWidget->SetPicker(picker); m_sagitalImagePlaneWidget->RestrictPlaneToVolumeOn(); m_sagitalImagePlaneWidget->SetKeyPressActivationValue('x'); m_sagitalImagePlaneWidget->GetPlaneProperty()->SetColor(1., .6, .0); m_sagitalImagePlaneWidget->SetTexturePlaneProperty(ipwProp); m_sagitalImagePlaneWidget->TextureInterpolateOn(); m_sagitalImagePlaneWidget->SetLookupTable(m_axialImagePlaneWidget->GetLookupTable()); m_sagitalImagePlaneWidget->SetResliceInterpolateToCubic(); // Pla CORONAL m_coronalImagePlaneWidget->DisplayTextOn(); m_coronalImagePlaneWidget->SetPicker(picker); m_coronalImagePlaneWidget->SetKeyPressActivationValue('y'); m_coronalImagePlaneWidget->GetPlaneProperty()->SetColor(.0, 1., 1.); m_coronalImagePlaneWidget->SetTexturePlaneProperty(ipwProp); m_coronalImagePlaneWidget->TextureInterpolateOn(); m_coronalImagePlaneWidget->SetLookupTable(m_axialImagePlaneWidget->GetLookupTable()); m_coronalImagePlaneWidget->SetResliceInterpolateToCubic(); picker->Delete(); ipwProp->Delete(); // INTERACCIÓ m_axialImagePlaneWidget->SetInteractor(getInteractor()); m_sagitalImagePlaneWidget->SetInteractor(getInteractor()); m_coronalImagePlaneWidget->SetInteractor(getInteractor()); PlanesInteractionCallback *planesInteractionCallback = PlanesInteractionCallback::New(); planesInteractionCallback->m_viewer = this; // m_axialImagePlaneWidget->AddObserver(vtkCommand::InteractionEvent, planesInteractionCallback); // m_sagitalImagePlaneWidget->AddObserver(vtkCommand::InteractionEvent, planesInteractionCallback); // m_coronalImagePlaneWidget->AddObserver(vtkCommand::InteractionEvent, planesInteractionCallback); m_axialImagePlaneWidget->AddObserver(vtkCommand::AnyEvent, planesInteractionCallback); m_sagitalImagePlaneWidget->AddObserver(vtkCommand::AnyEvent, planesInteractionCallback); m_coronalImagePlaneWidget->AddObserver(vtkCommand::AnyEvent, planesInteractionCallback); planesInteractionCallback->Delete(); }
void CHighScoresScreenPresenter::onClickOnOkButton() { getInteractor()->interact(); }