<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>