BBTK_BLACK_BOX_IMPLEMENTATION(ImageChangeInformation,bbtk::AtomicBlackBox);
void ImageChangeInformation::Process()
{
- int ext[6];
- double spc[3];
- vtkImageData* img = bbGetInputIn();
- if(img!=NULL){
- if(mchange != NULL){
+ int ext[6];
+ double spc[3];
+ double origin[3];
+ vtkImageData *img = bbGetInputIn();
+ if(img!=NULL)
+ {
+ if(mchange != NULL)
+ {
mchange->Delete();
}
mchange = vtkImageChangeInformation::New();
- img->GetExtent( ext );
+ img->GetExtent( ext );
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
mchange->SetInput( img );
- mchange->SetExtentTranslation( -ext[0], -ext[2], -ext[4] );
- mchange->SetOutputOrigin (0, 0, 0);
-
+#else
+ mchange->SetInputData( img );
+#endif
+
+ mchange->SetOutputExtentStart(0,0,0);
if (bbGetInputNewSpacing().size()==3)
{
spc[0] = bbGetInputNewSpacing()[0];
spc[2] = bbGetInputNewSpacing()[2];
mchange->SetOutputSpacing( spc[0] , spc[1] , spc [2] ); //spacing
}
-
-
+ if (bbGetInputNewOrigin().size()==3)
+ {
+ if ( (bbGetInputNewOrigin()[0]==-1) && (bbGetInputNewOrigin()[1]==-1) && (bbGetInputNewOrigin()[2]==-1) )
+ {
+ img->GetOrigin( origin );
+ } else {
+ origin[0] = bbGetInputNewOrigin()[0];
+ origin[1] = bbGetInputNewOrigin()[1];
+ origin[2] = bbGetInputNewOrigin()[2];
+ }
+ } else {
+ origin[0] = 0;
+ origin[1] = 0;
+ origin[2] = 0;
+ }
+ mchange->SetOutputOrigin( origin );
+ mchange->Modified(); //important
mchange->Update(); //important
-
bbSetOutputOut( mchange->GetOutput() );
- }
+ } // if img
-
}
+
+
void ImageChangeInformation::bbUserSetDefaultValues()
{
- mchange = NULL;
- bbSetOutputOut( NULL);
- bbSetInputIn(NULL);
+ mchange = NULL;
+ bbSetOutputOut( NULL);
+ bbSetInputIn(NULL);
}
void ImageChangeInformation::bbUserInitializeProcessing()