<div dir="ltr">Hello dear VTK-users,<br>I have an example using a VTKImageMapToColors<br>and a vtkImageChangeInfo filter that&nbsp; only works when I remove<br>all inputs from the mapper and add the input again.<br><br>First, the code that initializes the pipeline:<br>
---------------------------------------------------------------------------------------------------------<br>m_Info&nbsp;&nbsp; = /... get a&nbsp; vtkImageChangeInformation Filter from somewhere */<br>m_actor = vtkImageActor::New();<br>
m_colormapper = vtkImageMapToColors::New();<br>m_lut = vtkLookupTable::New();<br><br><br>m_lut-&gt;SetHueRange(0.0, 0.7);<br>&nbsp;&nbsp;&nbsp; m_lut-&gt;SetSaturationRange(0.7, 0.7);<br>&nbsp;&nbsp;&nbsp; m_lut-&gt;SetValueRange(0.8,0.8);<br>&nbsp;&nbsp;&nbsp; m_lut-&gt;SetNumberOfColors(256);<br>
&nbsp;&nbsp;&nbsp; m_lut-&gt;Build();<br>&nbsp;&nbsp;&nbsp; m_colormapper-&gt;SetLookupTable(m_lut);<br>&nbsp;&nbsp;&nbsp; m_colormapper-&gt;SetInputConnection(m_info-&gt;GetOutputPort());<br>&nbsp;&nbsp;&nbsp; m_colormapper-&gt;SetOutputFormatToRGBA();<br>&nbsp;&nbsp;&nbsp; m_colormapper-&gt;DebugOn();<br>
&nbsp;&nbsp;&nbsp; m_actor-&gt;SetInput(m_colormapper-&gt;GetOutput());<br>&nbsp;&nbsp;&nbsp; m_renderer-&gt;AddActor(m_actor);<br>---------------------------------------------------------------------------------------------------------<br><br>Now, the image-data that is used by the Info-Filter changes and the<br>
following sequence is called:<br><br>---------------------------------------------------------------------------------------------------------<br>m_info-&gt;UpdateWholeExtent();<br>&nbsp;&nbsp;&nbsp; double* l_range = m_info-&gt;GetOutput()-&gt;GetScalarRange();<br>
&nbsp;&nbsp;&nbsp; m_info-&gt;Modified();<br>&nbsp;&nbsp;&nbsp; m_info-&gt;Update();<br>&nbsp;&nbsp;&nbsp; // TODO: is this step really necessary or is there an<br>&nbsp;&nbsp;&nbsp; // approach that does not change the pipeline.<br>&nbsp;&nbsp;&nbsp; m_colormapper-&gt;RemoveAllInputs();<br>&nbsp;&nbsp;&nbsp; m_colormapper-&gt;SetInputConnection(m_info-&gt;GetOutputPort());<br>
&nbsp;&nbsp;&nbsp; m_lut-&gt;SetTableRange(l_range[0], l_range[1]);<br>&nbsp;&nbsp;&nbsp; m_lut-&gt;Build();<br>&nbsp;&nbsp;&nbsp; m_lut-&gt;Modified();<br>&nbsp;&nbsp;&nbsp; //m_colormapper-&gt;SetOutputFormatToRGBA();<br>&nbsp;&nbsp;&nbsp; m_colormapper-&gt;UpdateWholeExtent();<br>&nbsp;&nbsp;&nbsp; m_info-&gt;Modified();<br>
&nbsp;&nbsp;&nbsp; m_colormapper-&gt;Modified();<br>&nbsp;&nbsp;&nbsp; m_info-&gt;Update();<br>&nbsp;&nbsp;&nbsp; m_colormapper-&gt;Update();<br>---------------------------------------------------------------------------------------------------------<br><br>My question is: Do I really need to remove all inputs ?<br>
(I tried to use Modified() and Update() everywhere )<br>Are there any unnecessary operations I am doing ?<br><br>Best regards, Oliver.<br><br><br><br><br><br></div>