<font size="2"><font face="verdana,sans-serif">This is what I use:</font></font><div><font size="2"><font face="verdana,sans-serif"><br></font></font></div><div><font size="2"><div><font class="Apple-style-span" face="'courier new', monospace">void MainWindow::updateVisualization()</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">{ Â Â </font></div><div><font class="Apple-style-span" face="'courier new', monospace">Â Â typedef itk::ImageToVTKImageFilter<VisualizingImageType> itkVtkConverter;</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">Â Â itkVtkConverter::Pointer conv=itkVtkConverter::New();</font></div><div><font class="Apple-style-span" face="'courier new', monospace">Â Â conv->SetInput(itkVolume);</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">Â Â Â </font></div><div><font class="Apple-style-span" face="'courier new', monospace">Â Â vtkGPUVolumeRayCastMapper *mapper = vtkGPUVolumeRayCastMapper::New();</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">Â Â mapper->SetInput(conv->GetOutput());</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">Â Â if (volume) //if not the first volume delete the old one</font></div><div><font class="Apple-style-span" face="'courier new', monospace">Â Â Â Â volume->Delete();</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">Â Â volume=vtkVolume::New();</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><span class="Apple-tab-span" style="white-space:pre"> </span>constructTF();</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">Â Â volume->SetMapper( mapper );</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div>
<font class="Apple-style-span" face="'courier new', monospace">Â Â vtkRenderer *renderer = vis->GetRenderWindow()->GetRenderers()->GetFirstRenderer();</font></div><div><font class="Apple-style-span" face="'courier new', monospace">Â Â renderer->RemoveAllViewProps();</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">Â Â renderer->AddVolume( volume );</font></div><div><font class="Apple-style-span" face="'courier new', monospace">Â Â vis->GetRenderWindow()->Render();</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">Â Â renderer->ResetCamera();</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace"><span class="Apple-tab-span" style="white-space:pre"> </span>QApplication::processEvents();</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">}</font></div></font><br><div class="gmail_quote">On Fri, Oct 7, 2011 at 13:49, Xavius <span dir="ltr"><<a href="mailto:xavierelf@gmail.com">xavierelf@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi all!<br>
I have a trouble with VTK. I can't understand what is necessary to do to<br>
replace current volume.<br>
I've tried many things but without success. There's no troubles with a<br>
single volume, but when I try to load another volume I face problems...<br>
<br>
Below I post code, I think should work, but it doesn't...<br>
Please help me to understand VTK!<br>
<br>
// This method called when thread, that load DICOM image series finished<br>
void MainWindow::onThreadFinished(void) {<br>
    if (m_reader)<br>
        m_reader->Delete();<br>
    m_reader = m_itkLoadThread->getReader();<br>
<br>
    render();<br>
}<br>
<br>
// Volume constructing<br>
void MainWindow::render(void) {<br>
    ExportFilterType::Pointer                    itkExporter   = ExportFilterType::New();<br>
    vtkSmartPointer<vtkImageImport>             vtkImporter   = vtkImageImport::New();<br>
    vtkSmartPointer<vtkVolume>                    volume      = vtkVolume::New();<br>
    vtkSmartPointer<vtkVolumeTextureMapper3D>    mapper      =<br>
vtkVolumeTextureMapper3D::New();<br>
<br>
    itkExporter->SetInput(m_reader->GetOutput());<br>
    itkExporter->Update();<br>
    ConnectPipelines(itkExporter, vtkImporter);<br>
    vtkImporter->Update();<br>
<br>
    mapper->SetBlendModeToComposite();<br>
    mapper->SetInput(vtkImporter->GetOutput());<br>
    volume->SetProperty(m_volumeProperty);<br>
    volume->SetMapper(mapper);<br>
<br>
    changeVolume(volume);<br>
    if (!m_eventLoopStarted) {<br>
        m_iren->Start();<br>
        m_eventLoopStarted = !m_eventLoopStarted;<br>
    }<br>
}<br>
<br>
// Replacing an old volume for a new one<br>
void MainWindow::changeVolume(vtkProp *aProp) {<br>
    m_renderer->RemoveAllViewProps();<br>
    m_renderer->AddVolume(aProp);<br>
    vtkWidget->GetRenderWindow()->Render();<br>
}<br>
<br>
// Method called from constructor. Setting up render window.<br>
void MainWindow::prepareRenderWindow(void) {<br>
    vtkSmartPointer<vtkRenderWindow>                     renWin      =<br>
vtkWidget->GetRenderWindow();<br>
    vtkSmartPointer<vtkInteractorStyleTrackballCamera>    irenStyle    =<br>
vtkInteractorStyleTrackballCamera::New();<br>
    m_iren      = vtkRenderWindowInteractor::New();<br>
    m_renderer    = vtkRenderer::New();<br>
<br>
    // Prepare Render Window<br>
    renWin->AddRenderer(m_renderer);<br>
    renWin->SetInteractor(m_iren);<br>
<br>
    // Prepare Render Window Interactor<br>
    m_iren->SetInteractorStyle(irenStyle);<br>
    irenStyle->SetDefaultRenderer(m_renderer);<br>
    m_iren->SetRenderWindow(renWin);<br>
<br>
    // Prepare Renderer<br>
    m_renderer->SetBackground(0.5, 0.5, 0.5);<br>
    m_renderer->ResetCamera();<br>
<br>
    renWin->Render();<br>
}<br>
<font color="#888888"><br>
--<br>
View this message in context: <a href="http://vtk.1045678.n5.nabble.com/Replace-Volume-in-render-window-tp4879789p4879789.html" target="_blank">http://vtk.1045678.n5.nabble.com/Replace-Volume-in-render-window-tp4879789p4879789.html</a><br>
Sent from the VTK - Users mailing list archive at Nabble.com.<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
</font></blockquote></div><br></div>