//=====
void MultipleOperations::Process()
{
-printf("EED MultipleOperations::Process Start\n");
// THE MAIN PROCESSING METHOD BODY
// Here we simply set the input 'In' value to the output 'Out'
// And print out the output value
int dimXImage = extImage[1]-extImage[0]+1;
int dimYImage = extImage[3]-extImage[2]+1;
int dimZImage = extImage[5]-extImage[4]+1;
- int iLst,sizeLst= bbGetInputInLst().size();
if (bbGetOutputOut()!=NULL)
{
bbGetOutputOut()->Delete();
resultImage->SetDimensions( dimXImage, dimYImage, dimZImage );
resultImage->AllocateScalars( bbGetInputInLst()[0]->GetScalarType(),1 );
long int index,size=dimXImage*dimYImage*dimZImage;
- if (bbGetInputType()==20)
+ DEF_POINTER_IMAGE_VTK_CREA(vOut,ssOut,pOut,stOut,resultImage )
+ if ((bbGetInputType()==20) || (bbGetInputType()==21) )
{
- DEF_POINTER_IMAGE_VTK_CREA(vIn ,ssIn ,pIn ,stIn ,bbGetInputInLst()[0] )
- DEF_POINTER_IMAGE_VTK_CREA(vOut,ssOut,pOut,stOut,resultImage )
- double vInBack,acumDiff;
-// #pragma omp parallel for
- for (index=0;index<size;index++)
+
+long int k1omp=(double)(size-1)*0.0;
+long int k2omp=(double)(size-1)*0.2;
+long int k3omp=(double)(size-1)*0.4;
+long int k4omp=(double)(size-1)*0.6;
+long int k5omp=(double)(size-1)*0.8;
+long int k6omp=(double)(size-1)*1.0;
+
+printf("EED MultipleOperations::Process (with openmp)\n");
+#pragma omp parallel for
+
+ for (index=0;index<size;index++)
{
- acumDiff=0;
- for (iLst=0;iLst<sizeLst;iLst++) // volumes
+if ( (k1omp==index) || (k2omp==index) || (k3omp==index) ||
+ (k4omp==index) || (k5omp==index) || (k6omp==index) ) { printf(" %d%\n", (int)(((double)index/(double)(size-1))*100 )); }
+
+ DEF_POINTER_IMAGE_VTK_CREA(vIn ,ssIn ,pIn ,stIn ,bbGetInputInLst()[0] )
+
+ int iLst,sizeLst= bbGetInputInLst().size();
+ double vInBack ;
+ double acumDiff ;
+ vInBack = 0;
+ acumDiff = 0;
+ for ( iLst=0 ; iLst < sizeLst ; iLst++ ) // volumes
{
pIn=(char*)( bbGetInputInLst()[iLst]->GetScalarPointer() );
GETVALUE2_VTK_CREA(vIn,pIn,stIn,index)
if (iLst!=0)
{
- acumDiff = acumDiff+abs(vIn-vInBack);
- }
- vInBack=vIn;
+ if (bbGetInputType()==20)
+ {
+ acumDiff = acumDiff+abs(vIn-vInBack);
+ vInBack=vIn;
+ } // if 20
+ if (bbGetInputType()==21)
+ {
+ acumDiff = acumDiff+vIn;
+ } // if 20
+ }
} // for iLst
acumDiff = acumDiff/sizeLst;
SETVALUE2_VTK_CREA(acumDiff,pOut,stOut,index)
} // if Type==20
bbSetOutputOut( resultImage );
} // if InLst size
-printf("EED MultipleOperations::Process End\n");
-
}
//=====
// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)