#include <vtkVersion.h>
#include <vtkActor.h>
#include <vtkImageData.h>
#include <vtkIntArray.h>
#include <vtkProperty2D.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSmartPointer.h>
#include <vtkImageTranslateExtent.h>
int main(int, char *[] )
{
vtkSmartPointer<vtkImageData> image =
vtkSmartPointer<vtkImageData>::New();
image->SetExtent(0, 9, 0, 9, 0, 0);
#if VTK_MAJOR_VERSION <= 5
image->SetNumberOfScalarComponents(1);
image->SetScalarTypeToInt();
#else
image->AllocateScalars(VTK_INT,1);
#endif
vtkSmartPointer<vtkImageTranslateExtent> translateExtent =
vtkSmartPointer<vtkImageTranslateExtent>::New();
translateExtent->SetTranslation(3,4,5);
#if VTK_MAJOR_VERSION <= 5
translateExtent->SetInputConnection(image->GetProducerPort());
#else
translateExtent->SetInputData(image);
#endif
translateExtent->Update();
int newExtent[6];
translateExtent->GetOutput()->GetExtent(newExtent);
std::cout << "New extent: " << newExtent[0] << " " << newExtent[1] << " " << newExtent[2]
<< " " << newExtent[3] << " " << newExtent[4] << " " << newExtent[5] << std::endl;
return EXIT_SUCCESS;
}