+
+ if (bbGetInputIn()!=NULL)
+ {
+ if (mImageOut!=NULL)
+ {
+ mImageOut->Delete();
+ mImageOut=NULL;
+ } // if mImageOut
+
+ mImageOut = vtkImageData::New(); // Alloc depends on bbGetInputIn().size()
+ mImageOut->Initialize();
+ mImageOut->SetSpacing( bbGetInputIn()->GetSpacing() );
+ mImageOut->SetDimensions( bbGetInputIn()->GetDimensions() );
+
+//EED 2017-01-01 Migration VTK7
+#if (VTK_MAJOR_VERSION <= 5)
+ mImageOut->SetScalarType( bbGetInputIn()->GetScalarType() );
+ mImageOut->SetNumberOfScalarComponents( bbGetInputIn()->GetNumberOfScalarComponents() );
+ mImageOut->AllocateScalars();
+#endif
+#if (VTK_MAJOR_VERSION >= 6)
+ mImageOut->AllocateScalars(bbGetInputIn()->GetScalarType() , bbGetInputIn()->GetNumberOfScalarComponents());
+#endif
+
+ int inputdims[3];
+ // int outputdims[3];
+ bbGetInputIn()->GetDimensions (inputdims);
+
+//EED 2017-01-01 Migration VTK7
+#if (VTK_MAJOR_VERSION <= 5)
+ bbGetInputIn()->Update();
+#endif
+#if (VTK_MAJOR_VERSION >= 6)
+ // ..
+#endif
+
+ int nbScalComp = bbGetInputIn()->GetNumberOfScalarComponents();
+ int scalarSize = bbGetInputIn()->GetScalarSize();
+ int lineSize = inputdims[0]*scalarSize*nbScalComp;
+ int planeSize = inputdims[1]*lineSize;
+ int volumeSize = inputdims[2]*planeSize;
+ char *pixelsIn = (char *)bbGetInputIn()->GetScalarPointer();
+ char *pixelsOut = (char *)mImageOut->GetScalarPointer();
+
+ char *lineIn;
+ char *lineOut;
+ char *debPlanIn;
+ char *debPlanOut;
+ int i,j,k;
+
+ if ( (bbGetInputAxis()=="O") || (bbGetInputAxis()=="o") )
+ {
+ pixelsIn = (char *)bbGetInputIn()->GetScalarPointer(0,0,0);
+ pixelsOut = (char *)mImageOut->GetScalarPointer(0,0,0);
+ memcpy(pixelsOut, pixelsIn, volumeSize );
+ } else if ( (bbGetInputAxis()=="X") || (bbGetInputAxis()=="x") )
+ {
+
+ for(k=0; k<inputdims[2]; k++) // iterate planes
+ {
+ for(j=0; j<inputdims[1]; j++) // iterates rows
+ {
+ for(i=0; i<inputdims[0]; i++) // iterates columns
+ {
+ pixelsIn = (char *)bbGetInputIn()->GetScalarPointer(i,j,k);
+ pixelsOut = (char *)mImageOut->GetScalarPointer(inputdims[0]-1-i,j,k);
+ memcpy(pixelsOut, pixelsIn, scalarSize );
+ } // for i
+ } // for j
+ } // for k
+
+ } else if ( (bbGetInputAxis()=="Z") || (bbGetInputAxis()=="z") ) {
+
+ for(k=0; k<inputdims[2]; k++) // iterate planes
+ {
+ for(j=0; j<inputdims[1]; j++) // iterates rows
+ {
+ for(i=0; i<inputdims[0]; i++) // iterates columns
+ {
+ pixelsIn = (char *)bbGetInputIn()->GetScalarPointer(i,j,k);
+ pixelsOut = (char *)mImageOut->GetScalarPointer(i,j,inputdims[2]-1-k);
+ memcpy(pixelsOut, pixelsIn, scalarSize );
+ } // for i
+ } // for j
+ } // for k
+
+ } else {
+
+ for(k=0; k<inputdims[2]; k++) // iterate planes
+ {
+ debPlanIn = pixelsIn+k*planeSize;
+ debPlanOut = pixelsOut+k*planeSize;
+ for(j=0; j<inputdims[1]; j++) // iterates rows
+ {
+ lineIn = debPlanIn+j*lineSize;
+ lineOut = debPlanOut+(inputdims[1]-1-j)*lineSize;
+ memcpy(lineOut, lineIn, lineSize);
+ } // for j
+ } // for k
+
+ } //if
+ mImageOut->Modified();
+ bbSetOutputOut( mImageOut );
+ } // bbGetInputIn