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();
}
Esempio n. 2
0
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();
	}