[vtkusers] Qt & VTK Intereaction problem
Jothy
jothybasu at gmail.com
Fri Jul 22 09:03:00 EDT 2011
Can you try m_pQVTKWidget->show()
Jothy
On Fri, Jul 22, 2011 at 1:31 PM, al.gry <al.gry at web.de> wrote:
> Hi all,
> I'm new to VTK and Qt. Now to my problem, I'm trying to visualize 3d volume
> from dicom files using vtk in qt. So far it goes fine but I cannot rotate
> the scene or do other interactions except zooming. If I use the same code
> without Qt everything works. I searched in the mailing list and found some
> hints but nothing I can work with.
>
> m_pRenWin = vtkSmartPointer<vtkRenderWindow>::New();
> m_pQVTKWidget->SetRenderWindow(m_pRenWin);
> m_pIren = vtkSmartPointer<vtkRenderWindowInteractor>::New();
> m_pIren->SetRenderWindow(m_pQVTKWidget->GetRenderWindow());
> m_pRen = vtkSmartPointer<vtkRenderer>::New();
> m_pQVTKWidget->GetRenderWindow()->AddRenderer(m_pRen);
>
> vtkSmartPointer<vtkAlgorithm> m_reader =
> vtkSmartPointer<vtkAlgorithm>::New();
> m_reader = m_pDicomReader;
> vtkSmartPointer<vtkImageData> input =
> vtkSmartPointer<vtkImageData>::New();
> input = m_pDicomReader->GetOutput();
>
> int dim[3];
> input->GetDimensions(dim);
> if( (dim[0] < 2)||(dim[1] < 2)||(dim[2] < 2))
> {
> QMessageBox::information(this, tr("Error"), tr("Wrong dimension!"));
> return;
> }
>
> // Create our volume and mapper
> vtkSmartPointer<vtkVolume> volume = vtkSmartPointer<vtkVolume>::New();
> vtkSmartPointer<vtkFixedPointVolumeRayCastMapper> mapper =
> vtkSmartPointer<vtkFixedPointVolumeRayCastMapper>::New();
>
> mapper->SetInputConnection( m_reader->GetOutputPort() );
>
> double spacing[3];
> input->GetSpacing(spacing);
>
> vtkSmartPointer<vtkColorTransferFunction> colorFun =
> vtkSmartPointer<vtkColorTransferFunction>::New();
> vtkSmartPointer<vtkPiecewiseFunction> opacityFun =
> vtkSmartPointer<vtkPiecewiseFunction>::New();
>
> vtkSmartPointer<vtkVolumeProperty> property =
> vtkSmartPointer<vtkVolumeProperty>::New();
> bool independentComponents=true;
> property->SetIndependentComponents(independentComponents);
> property->SetColor( colorFun );
> property->SetScalarOpacity( opacityFun );
> property->SetInterpolationTypeToLinear();
>
> // connect up the volume to the property and the mapper
> volume->SetProperty( property );
> volume->SetMapper( mapper );
>
> double opacityWindow = 4096.0;
> double opacityLevel = 2048.0;
>
> colorFun->AddRGBSegment(0.0, 1.0, 1.0, 1.0, 255.0, 1.0, 1.0, 1.0 );
> opacityFun->AddSegment( opacityLevel - 0.5*opacityWindow, 0.0,
> opacityLevel + 0.5*opacityWindow, 1.0 );
> mapper->SetBlendModeToMaximumIntensity();
>
> m_pIren = vtkSmartPointer<vtkRenderWindowInteractor>::New();
> m_pIren->SetRenderWindow(m_pQVTKWidget->GetRenderWindow());
> m_pIren->GetInteractorStyle()->SetDefaultRenderer(m_pRen);
>
> //m_pQVTKWidget->GetRenderWindow()->Render();
> m_pRen->AddVolume(volume);
> m_pRen->ResetCamera();
> m_pRen->Modified();
>
> m_pQVTKWidget->GetRenderWindow()->Render();
>
>
> --
> View this message in context: http://vtk.1045678.n5.nabble.com/Qt-VTK-Intereaction-problem-tp4622853p4622853.html
> Sent from the VTK - Users mailing list archive at Nabble.com.
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
More information about the vtkusers
mailing list