- int ext[6];
- bbGetInputIn()->GetExtent( ext );
- if (mchange!=NULL) { mchange->Delete(); }
- mchange = vtkImageChangeInformation::New();
- mchange->SetInput( bbGetInputIn() );
- mchange->SetExtentTranslation( -ext[0], -ext[2], -ext[4] );
- mchange->Update(); //important
+ int ext[6];
+ double spc[3];
+ vtkImageData* img = bbGetInputIn();
+ if(img!=NULL){
+ if(mchange != NULL){
+ mchange->Delete();
+ }
+ mchange = vtkImageChangeInformation::New();
+ img->GetExtent( ext );
+ mchange->SetInput( img );
+ mchange->SetExtentTranslation( -ext[0], -ext[2], -ext[4] );
+ mchange->SetOutputOrigin (0, 0, 0);
+
+ if (bbGetInputNewSpacing().size()==3)
+ {
+ spc[0] = bbGetInputNewSpacing()[0];
+ spc[1] = bbGetInputNewSpacing()[1];
+ spc[2] = bbGetInputNewSpacing()[2];
+ mchange->SetOutputSpacing( spc[0] , spc[1] , spc [2] ); //spacing
+ }
+
+
+ mchange->Update(); //important
+
+ bbSetOutputOut( mchange->GetOutput() );
+ }