//std::cout << "-------- entree ds Flip::bbUserSetDefaultValues()\n" << std::endl;
bbSetInputIn(NULL);
+ bbSetInputAxis("Y");
mImageOut = NULL;
bbSetOutputOut(NULL);
}
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 *lineOut;
char *debPlanIn;
char *debPlanOut;
- int j,k;
- for(k=0; k<inputdims[2]; k++) // iterate on planes
+ int i,j,k;
+
+ if ( (bbGetInputAxis()=="O") || (bbGetInputAxis()=="o") )
{
- debPlanIn = pixelsIn+k*planeSize;
- debPlanOut = pixelsOut+k*planeSize;
- for(j=0; j<inputdims[1]; j++) // iterates on rows
- {
- lineIn = debPlanIn+j*lineSize;
- lineOut = debPlanOut+(inputdims[1]-1-j)*lineSize;
- memcpy(lineOut, lineIn, lineSize);
- } // for j
- } // for k
-
+ 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