I am using vtkExtractVOI to crop a dataset and then translate the extent so it starts at 0.&nbsp; This cropping and translation moves the origin to a non (0,0,0) value.&nbsp; To correct this I manually set it back to (0,0,0).&nbsp; This works fine, but on some datasets when I apply a smoothing filter (vtkSmoothPolyDataFilter, vtkImageGaussianSmooth) or a widget (vtkImagePlaneWidget) these functions will change the origin back to its previous non (0,0,0) value.<br><br>Where is the origin being stored so that it can be restored, and how do I change that also?&nbsp; Code shown below:<br><br>Crop funtion, image is type vtkImgeData:<br>&nbsp;&nbsp;&nbsp; vtkExtractVOI* cropVOI = vtkExtractVOI::New();<br>&nbsp;&nbsp;&nbsp; cropVOI-&gt;SetInput(image);<br>&nbsp;&nbsp;&nbsp; cropVOI-&gt;SetVOI(crop);<br><br>&nbsp;&nbsp;&nbsp; //Translate extent so that extent is from 0-&gt;max-x,y,z<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; vtkImageTranslateExtent* cropTrans =
 vtkImageTranslateExtent::New()<br>&nbsp;&nbsp;&nbsp; cropTrans-&gt;SetInput(cropVOI-&gt;GetOutput());<br>&nbsp;&nbsp;&nbsp; cropTrans-&gt;SetTranslation(-crop[0], -crop[2], -crop[4]);<br><br>Pipeline I call the following classes:<br>vtkImageData<br>vtkImageGaussianSmooth (if smoothing is turned on)<br>vtkMarchingCubes<br>vtkPolyDataMapper<br>vtkActor<br><br>As soon as I call the SetInput() function on vtkImageGaussianSmooth it restores the old origin on the vtkImageData data set.&nbsp; What is even more confusing is that this doesn't happen on all datasets.&nbsp; For example the example dataset ironProt.vtk has this problem, but some my own custom datasets don't.&nbsp; Any help would be appreciated.<br><br>Sam<br>