From: Eduardo DAVILA Date: Mon, 4 May 2020 15:53:45 +0000 (+0200) Subject: #3418 creaMaracasVisu Feature New Normal - ManualPaint_model with openmp X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=6694ec2504963c0719f59769a18ae65170a963b9;p=creaMaracasVisu.git #3418 creaMaracasVisu Feature New Normal - ManualPaint_model with openmp --- diff --git a/bbtk/bbs/boxes/ManualPaint2.bbg b/bbtk/bbs/boxes/ManualPaint2.bbg index a9dc028..2928997 100644 --- a/bbtk/bbs/boxes/ManualPaint2.bbg +++ b/bbtk/bbs/boxes/ManualPaint2.bbg @@ -1,6 +1,6 @@ # ---------------------------------- # - BBTKGEditor v 1.4 BBG BlackBox Diagram file -# - /home/davila/Creatis/C8/creatools_source/creaMaracasVisu/bbtk/bbs/boxes/ManualPaint2.bbg +# - /home/davila/Creatis/C10/creatools_source/creaMaracasVisu/bbtk/bbs/boxes/ManualPaint2.bbg # ---------------------------------- APP_START @@ -10,11 +10,15 @@ AUTHOR:Author ?? COMPLEXBOX:TRUE COMPLEXBOXNAME:ManualPaint2 PACKAGENAME:creaMaracasVisu -COMPLEXOUTPUTS:1 +COMPLEXOUTPUTS:2 COMPLEX_PORT widgetOut -94.963421:-185.755112:-900.000000 FIN_COMPLEX_PORT +COMPLEX_PORT +boxChange +-13.009667:-180.316926:-900.000000 +FIN_COMPLEX_PORT COMPLEXINPUTS:15 COMPLEX_PORT TitleOptions @@ -377,7 +381,7 @@ In1:"XZ" PORT In2:"XY" FIN_BOX -CONNECTIONS:84 +CONNECTIONS:85 CONNECTION Box01:Out:Box02:In NumberOfControlPoints:0 @@ -630,4 +634,7 @@ NumberOfControlPoints:0 CONNECTION Box39:Out:Box00:Direction NumberOfControlPoints:0 +CONNECTION +Box01:BoxChange:boxChange:boxChange +NumberOfControlPoints:0 APP_END diff --git a/bbtk/bbs/boxes/ManualPaint2.bbs b/bbtk/bbs/boxes/ManualPaint2.bbs index 6fb2bd6..1301012 100644 --- a/bbtk/bbs/boxes/ManualPaint2.bbs +++ b/bbtk/bbs/boxes/ManualPaint2.bbs @@ -1,6 +1,6 @@ # ---------------------------------- # - BBTKGEditor v 1.4 BBS BlackBox Script (Complex Box) -# - /home/davila/Creatis/C8/creatools_source/creaMaracasVisu/bbtk/bbs/boxes/ManualPaint2.bbs +# - /home/davila/Creatis/C10/creatools_source/creaMaracasVisu/bbtk/bbs/boxes/ManualPaint2.bbs # ---------------------------------- include std @@ -222,6 +222,7 @@ input Point_ManualPaint_Model Box38.In " " # Complex output ports output widgetOut Box09.Widget " " +output boxChange Box01.BoxChange " " endefine diff --git a/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx b/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx index b9c2303..a195bca 100644 --- a/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx +++ b/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx @@ -6,6 +6,8 @@ #include "bbcreaMaracasVisuManualPaint_Model.h" #include "bbcreaMaracasVisuPackage.h" +#include + namespace bbcreaMaracasVisu { @@ -227,14 +229,88 @@ printf("EED ManualPaint_Model::Process list of points (with openmp) size=%d\n" long int index, size=dimX*dimY*dimZ; +printf("EED ManualPaint_Model::Process A.start\n"); +std::vector lstX; +std::vector lstY; +std::vector lstZ; + int i,j,k; + double value1; + double value2; + for (index=0; index0) + { + GETVALUE2_VTK_CREA(value2,pI2,sTI2,index) + if (value2==0) + { + i = index % dimX; + j = (index % (dimX*dimY)) / dimX; + k = index / (dimX*dimY); + lstX.push_back(i); + lstY.push_back(j); + lstZ.push_back(k); + } // if value2 + } // if value1 + } // for +printf("EED ManualPaint_Model::Process B.end\n"); + +size=lstX.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 ByImagePoints (with openmp) size=%d GrayLevel=%f\n",size,(double)bbGetInputGrayLevel()); -#pragma omp parallel for +printf("EED ManualPaint_Model::Process ByImagePoints (with openmp) size=%d GrayLevel=%f this=%p\n",size,(double)bbGetInputGrayLevel(),this); +//omp_set_num_threads( omp_get_max_threads()-1 ); +#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(lstX[index],lstY[index],lstZ[index]); +// // manualpaintmodel->SetUndoImage(); // Probably needed. Here is ok. +// } // vI2 +// } // vBIP + } // for index END openmp + manualpaintmodel->Copy_GeneralAuxFill_to_Results(); + + + + + + + +/* openmp +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 this=%p\n",size,(double)bbGetInputGrayLevel(),this); +omp_set_num_threads( omp_get_max_threads()-1 ); +#pragma omp parallel for for (index=0; indexSetUndoImage(); // Probably needed. Here is ok. } // vI2 } // vBIP - } // for index + } // for index END openmp manualpaintmodel->Copy_GeneralAuxFill_to_Results(); +*/ /* int i,j,k;