X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkImageBoundaries.cxx;h=c477aade336f12711fd8376ed00224843a8eca37;hb=edb8e9b8948e7216e06b3ef5228b16f18417ca52;hp=3275137da798188ab483ae753146d7049f218751;hpb=8288a4327a437863a75f46bfb93d15669d6f311f;p=bbtk.git diff --git a/packages/vtk/src/bbvtkImageBoundaries.cxx b/packages/vtk/src/bbvtkImageBoundaries.cxx index 3275137..c477aad 100644 --- a/packages/vtk/src/bbvtkImageBoundaries.cxx +++ b/packages/vtk/src/bbvtkImageBoundaries.cxx @@ -52,7 +52,6 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ImageBoundaries,bbtk::AtomicBlackBox); void ImageBoundaries::Process() { if (bbGetInputIn()!=NULL){ - int i,j,k; int ext[6]; double value; @@ -74,54 +73,55 @@ void ImageBoundaries::Process() int bYMin = maxY-1; int bZMin = maxZ-1; -/* - #pragma omp parallel for - for (int i=0 ; iGetScalarComponentAsDouble(i, j, k,0); - if ( (value>=bbGetInputLowerValue()) && (value<=bbGetInputUpperValue()) ) - { - if (ibXMax) bXMax=i; - if (j>bYMax) bYMax=j; - if (k>bZMax) bZMax=k; - } - } // for k - } // for j - } // i -*/ - + + double lowervalue = bbGetInputLowerValue(); + double uppervalue = bbGetInputUpperValue(); DEF_POINTER_IMAGE_VTK_CREA(vI,ssI,pI,stI,bbGetInputIn()) long int index=0; + + //int i,j; + int k; + +int k1omp=(double)(maxZ-1)*0.0; +int k2omp=(double)(maxZ-1)*0.2; +int k3omp=(double)(maxZ-1)*0.4; +int k4omp=(double)(maxZ-1)*0.6; +int k5omp=(double)(maxZ-1)*0.8; +int k6omp=(double)(maxZ-1)*1.0; + +//printf("EED ImageBoundaries::Process (with openmp)\n"); + +// http://jakascorner.com/blog/2016/05/omp-for.html +//#pragma omp parallel shared(maxZ,bXMin,bYMin,bZMin,bXMax,bYMax,bZMax) +//{ + #pragma omp for for ( k=0 ; kGetScalarComponentAsDouble(i, j, k,0); - GETVALUE2_VTK_CREA(vI,pI,stI,index) + GETVALUE2_VTK_CREA(vItmpOMP,pI,stI,index) index++; - if ( (vI>=bbGetInputLowerValue()) && (vI<=bbGetInputUpperValue()) ) + if ( (vItmpOMP>=lowervalue) && (vItmpOMP<=uppervalue) ) { - if (ibXMax) bXMax=i; - if (j>bYMax) bYMax=j; - if (k>bZMax) bZMax=k; + if (ibXMax) bXMax = i; + if (j>bYMax) bYMax = j; + if (k>bZMax) bZMax = k; } } // for k } // for j } // i +// } // #pragma + std::vector tmpIndex; std::vector tmpSize; if (bXMin>bXMax){