I have a volume rendering pipeline and I want to release all the memory resources of pipeline on runtime .<br>How can I release memory resources of the pipeline safely? <br>It seems the iren is the end of pipeline, if I call the iren->Delete(), will it delete recursively all of the pipeline?<br>
What is the solution ? Pipeline is below. Thanks for answers!!<br><br> renderer = vtkSmartPointer < vtkRenderer > :: New();<br> renderWindow = vtkSmartPointer < vtkWin32OpenGLRenderWindow > :: New();<br>
renderWindow->AddRenderer(renderer);<br> renderWindow->SetSize(width, height); <br><br> iren = vtkSmartPointer < vtkWin32RenderWindowInteractor > :: New();<br> iren->SetRenderWindow(renderWindow);<br>
<br> volumeMapper = vtkSmartPointer<vtkFixedPointVolumeRayCastMapper>::New();<br> volumeMapper->SetInputConnection(reader->GetOutputPort());<br> volumeMapper->SetBlendModeToComposite();<br><br>
volumeColor = vtkSmartPointer<vtkColorTransferFunction>::New();<br> volumeColor->AddRGBPoint(0, 0.0, 0.0, 0.0);<br> volumeColor->AddRGBPoint(500, 1.0, 0.5, 0.3);<br> volumeColor->AddRGBPoint(1000, 1.0, 0.5, 0.3);<br>
volumeColor->AddRGBPoint(1150, 1.0, 1.0, 0.9);<br><br> volumeScalarOpacity = vtkSmartPointer<vtkPiecewiseFunction>::New();<br> volumeScalarOpacity->AddPoint(0, 0.00);<br> volumeScalarOpacity->AddPoint(500, 0.15); <br>
volumeScalarOpacity->AddPoint(1000, 0.15); <br> volumeScalarOpacity->AddPoint(1150, 0.90);<br><br> volumeGradientOpacity = vtkSmartPointer<vtkPiecewiseFunction>::New();<br> volumeGradientOpacity->AddPoint(0, 0.0);<br>
volumeGradientOpacity->AddPoint(90, 0.5);<br> volumeGradientOpacity->AddPoint(100, 1.0);<br><br> volumeProperty = vtkSmartPointer<vtkVolumeProperty>::New();<br> volumeProperty->SetColor(volumeColor);<br>
volumeProperty->SetScalarOpacity(volumeScalarOpacity);<br> volumeProperty->SetGradientOpacity(volumeGradientOpacity);<br> volumeProperty->SetInterpolationTypeToLinear();<br> volumeProperty->ShadeOff();<br>
volumeProperty->SetAmbient(0.4); <br> volumeProperty->SetDiffuse(0.6); <br> volumeProperty->SetSpecular(0.2); <br><br> LODProperty = vtkSmartPointer <vtkLODProp3D>::New();<br> int id = LODProperty->AddLOD(volumeMapper, volumeProperty, 0.0);<br>
LODProperty->SetLODLevel(id, 0.0);<br><br> renderer->AddViewProp(LODProperty);<br> renderer->ResetCamera();<br> renderer->Render();<br> <br> iren->Initialize();<br clear="all"><br>-- <br>
Chasan KIOUTSOUKMOUSTAFA<br><br>