X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk%2Fsrc%2FbbcreaMaracasVisuManualPaint_Model.cxx;h=b9c230335036086654d0138b978f45afeffcc977;hb=cf87bb498ccc24b1fb1aa2104957e0cb1afad2f2;hp=7167f6cbff873cc17cbff82fe8ac9cde70301e3f;hpb=88000c43d09de22761bb0ca9e19995e72dc2ebce;p=creaMaracasVisu.git diff --git a/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx b/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx index 7167f6c..b9c2303 100644 --- a/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx +++ b/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx @@ -19,6 +19,15 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ManualPaint_Model,bbtk::AtomicBlackBox); //-- Alternativa con openmp -- void ManualPaint_Model::LstPointOMPAnalice() { + +printf("EED ManualPaint_Model::LstPointOMPAnalice\n" ); +printf("EED FillFilter::Run ojo toca limpiar bien el codigo _px px ...... \n"); +printf("EED FillFilter::Run ojo toca limpiar bien el codigo _px px ...... \n"); +printf("EED FillFilter::Run ojo toca limpiar bien el codigo _px px ...... \n"); +printf("EED FillFilter::Run ojo toca limpiar bien el codigo _px px ...... \n"); + + +printf("EED ManualPaint_Model::LstPointOMPAnalice Start \n"); //-- Alternativa con openmp -- // A. Create copie of index original list => lst1 // B. if list1 es not empty do.. @@ -81,20 +90,20 @@ long int k3omp=(double)(size2-1)*0.4; long int k4omp=(double)(size2-1)*0.6; long int k5omp=(double)(size2-1)*0.8; long int k6omp=(double)(size2-1)*1.0; -printf("EED ManualPaint_Model::LstPointOMPAnalice (with openmp)\n"); +printf("EED ManualPaint_Model::LstPointOMPAnalice (with openmp) size=%d\n",size2); #pragma omp parallel for for (i2=0;i2PaintImage( bbGetInputByLstPointsX()[ lst2[i2] ] , bbGetInputByLstPointsY()[ lst2[i2] ] , bbGetInputByLstPointsZ()[ lst2[i2] ] ); @@ -115,13 +124,13 @@ if ( (k1omp==i2) || (k2omp==i2) || (k3omp==i2) || } // for i2 } // while +printf("EED ManualPaint_Model::LstPointOMPAnalice End\n"); } void ManualPaint_Model::Process() { - /* Notas 0. Quitar comentarion ByLstPoints openmp 1. Falta openmp ByImagePoints @@ -141,32 +150,55 @@ void ManualPaint_Model::Process() manualpaintmodel->SetTool( bbGetInputTool() ); manualpaintmodel->Set2D3D( bbGetInput2D3D() ); manualpaintmodel->SetImages( bbGetInputImage(),bbGetInputImage2() ); - manualpaintmodel->SetGrayLevel( bbGetInputGrayLevel() ); + manualpaintmodel->SetGrayLevel( bbGetInputGrayLevel() ); manualpaintmodel->SetDirection( bbGetInputDirection() ); manualpaintmodel->SetBrushSize( bbGetInputBrushSize() ); manualpaintmodel->SetBrushForm( bbGetInputBrushForm() ); manualpaintmodel->SetToleranceFill( bbGetInputToleranceFill() ); - manualpaintmodel->SetDistanceFill( bbGetInputDistanceFill() ); + manualpaintmodel->SetDistanceFill( bbGetInputDistanceFill() ); manualpaintmodel->SetRangeMin( bbGetInputRange()[0] ); manualpaintmodel->SetRangeMax( bbGetInputRange()[1] ); if (bbGetInputPoint().size()==3) { manualpaintmodel->PaintImage( bbGetInputPoint()[0] , bbGetInputPoint()[1] , bbGetInputPoint()[2] ); manualpaintmodel->SetUndoImage(); + manualpaintmodel->Copy_GeneralAuxFill_to_Results(); } // if Points if ( bbGetInputByLstPointsX().size()!=0 ) { //-- Alternativa con openmp -- - LstPointOMPAnalice(); +// LstPointOMPAnalice(); -/* -- Original ByLstPoints sin openmp -- +// /* -- Original ByLstPoints sin openmp -- int i,size = bbGetInputByLstPointsX().size(); +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 ManualPaint_Model::Process list of points (with openmp) size=%d\n",size); +#pragma omp parallel for for (i=0;iPaintImage( bbGetInputByLstPointsX()[i] , bbGetInputByLstPointsY()[i] , bbGetInputByLstPointsZ()[i] ); + if ( (k1omp==i) || (k2omp==i) || (k3omp==i) || + (k4omp==i) || (k5omp==i) || (k6omp==i) ) + { + if (size==1) + { + printf(" 100% (just one element)\n"); + } else { + printf(" %d% \n", (int)(((double)i/(double)(size-1))*100 )); + } + }// if K#omp + manualpaintmodel->PaintImage( bbGetInputByLstPointsX()[i] , + bbGetInputByLstPointsY()[i] , + bbGetInputByLstPointsZ()[i] ); //_manualPaintModel->SetUndoImage(); // Probably needed. Here is ok. } // for - -- Original ByLstPoints sin openmp --*/ +// -- Original ByLstPoints sin openmp --*/ + + manualpaintmodel->Copy_GeneralAuxFill_to_Results(); }// if ByLstPointsX if ((bbGetInputByImagePoints()!=NULL) && (bbGetInputImage2()!=NULL) ) @@ -192,14 +224,52 @@ void ManualPaint_Model::Process() int dimZ=ext[5]-ext[4]+1; DEF_POINTER_IMAGE_VTK_CREA(vBIP,sSBIP,pBIP,sTBIP,bbGetInputByImagePoints()); DEF_POINTER_IMAGE_VTK_CREA(vI2,sSI2,pI2,sTI2,bbGetInputImage2()); + + long int index, size=dimX*dimY*dimZ; + +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 ManualPaint_Model::Process ByImagePoints (with openmp) size=%d GrayLevel=%f\n",size,(double)bbGetInputGrayLevel()); +#pragma omp parallel for + for (index=0; index0) + { + double value2; + GETVALUE2_VTK_CREA(value2,pI2,sTI2,index) + if (value2==0) + { + int i = index % dimX; + int j = (index % (dimX*dimY)) / dimX; + int k = index / (dimX*dimY); + manualpaintmodel->PaintImage(i,j,k); +// manualpaintmodel->SetUndoImage(); // Probably needed. Here is ok. + } // vI2 + } // vBIP + } // for index + manualpaintmodel->Copy_GeneralAuxFill_to_Results(); + +/* int i,j,k; //#pragma omp parallel for for (k=0;k point; - point.push_back(0); - point.push_back(0); - point.push_back(0); - bbSetInputPoint(point); +// point.push_back(0); +// point.push_back(0); +// point.push_back(0); +// bbSetInputPoint(point); std::vector range; range.push_back(0); range.push_back(200);