X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk%2Fsrc%2FbbcreaMaracasVisuManualPaint_Model.cxx;h=58df16c3523c4da7bea3f11f4ab15842e33051f4;hb=39ac649f6a07b1646505a9d8c418f72bd76fc64e;hp=e36413448e29d70fe33e61093d2f50958584bbcd;hpb=865d74f8d9ea0b80a3bc4de0be2b73d85399c2b5;p=creaMaracasVisu.git diff --git a/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx b/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx index e364134..58df16c 100644 --- a/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx +++ b/bbtk/src/bbcreaMaracasVisuManualPaint_Model.cxx @@ -1,8 +1,12 @@ //===== // 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) //===== + +#include "creaVtk_MACROS.h" #include "bbcreaMaracasVisuManualPaint_Model.h" #include "bbcreaMaracasVisuPackage.h" + + namespace bbcreaMaracasVisu { @@ -11,6 +15,8 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ManualPaint_Model,bbtk::AtomicBlackBox); //===== // 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) //===== + + void ManualPaint_Model::Process() { @@ -28,69 +34,85 @@ void ManualPaint_Model::Process() // bbSetOutputOut( bbGetInputIn() ); // std::cout << "Output value = " <SetActive( bbGetInputActive() ); - manualpaintmodel->SetTool( bbGetInputTool() ); - manualpaintmodel->Set2D3D( bbGetInput2D3D() ); - manualpaintmodel->SetImages( bbGetInputImage(),bbGetInputImage2() ); - manualpaintmodel->SetGrayLevel( bbGetInputGrayLevel() ); - manualpaintmodel->SetDirection( bbGetInputDirection() ); - manualpaintmodel->SetBrushSize( bbGetInputBrushSize() ); - manualpaintmodel->SetBrushForm( bbGetInputBrushForm() ); - manualpaintmodel->SetToleranceFill( bbGetInputToleranceFill() ); - manualpaintmodel->SetDistanceFill( bbGetInputDistanceFill() ); - manualpaintmodel->SetRangeMin( bbGetInputRange()[0] ); - manualpaintmodel->SetRangeMax( bbGetInputRange()[1] ); - if (bbGetInputPoint().size()==3) - { - manualpaintmodel->PaintImage( bbGetInputPoint()[0] , bbGetInputPoint()[1] , bbGetInputPoint()[2] ); - } // if Points - - if ( bbGetInputByLstPointsX().size()!=0 ) - { - int i,size = bbGetInputByLstPointsX().size(); - for (i=0;iSetActive( bbGetInputActive() ); + manualpaintmodel->SetTool( bbGetInputTool() ); + manualpaintmodel->Set2D3D( bbGetInput2D3D() ); + manualpaintmodel->SetImages( bbGetInputImage(),bbGetInputImage2() ); + manualpaintmodel->SetGrayLevel( bbGetInputGrayLevel() ); + manualpaintmodel->SetDirection( bbGetInputDirection() ); + manualpaintmodel->SetBrushSize( bbGetInputBrushSize() ); + manualpaintmodel->SetBrushForm( bbGetInputBrushForm() ); + manualpaintmodel->SetToleranceFill( bbGetInputToleranceFill() ); + manualpaintmodel->SetDistanceFill( bbGetInputDistanceFill() ); + manualpaintmodel->SetRangeMin( bbGetInputRange()[0] ); + manualpaintmodel->SetRangeMax( bbGetInputRange()[1] ); + if (bbGetInputPoint().size()==3) { - manualpaintmodel->PaintImage( bbGetInputByLstPointsX()[i] , bbGetInputByLstPointsY()[i] , bbGetInputByLstPointsZ()[i] ); - } // for - }// if ByLstPointsX - - if (bbGetInputByImagePoints()!=NULL) - { - int i,j,k; -// int ia,ja,ka; -// int ii,jj,kk; - int ext[6]; - bbGetInputByImagePoints()->GetWholeExtent(ext); - int dimX=ext[1]-ext[0]+1; - int dimY=ext[3]-ext[2]+1; - int dimZ=ext[5]-ext[4]+1; - for (i=0;iPaintImage( bbGetInputPoint()[0] , bbGetInputPoint()[1] , bbGetInputPoint()[2] ); + manualpaintmodel->SetUndoImage(); + } // if Points + if ( bbGetInputByLstPointsX().size()!=0 ) { - if (i%20==0) + int i,size = bbGetInputByLstPointsX().size(); + for (i=0;iPaintImage( bbGetInputByLstPointsX()[i] , bbGetInputByLstPointsY()[i] , bbGetInputByLstPointsZ()[i] ); + // _manualPaintModel->SetUndoImage(); // Probably needed. Here is ok. + } // for + }// if ByLstPointsX + if ((bbGetInputByImagePoints()!=NULL) && (bbGetInputImage2()!=NULL) ) + { + // int ia,ja,ka; + // int ii,jj,kk; + int ext[6]; + //EED 2017-01-01 Migration VTK7 + #if VTK_MAJOR_VERSION <= 5 + bbGetInputByImagePoints()->GetWholeExtent(ext); + #else + bbGetInputByImagePoints()->GetExtent(ext); + #endif + int dimX=ext[1]-ext[0]+1; + int dimY=ext[3]-ext[2]+1; + 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()); + //#pragma omp parallel for + int i,j,k; + for (k=0;kGetScalarComponentAsDouble(i,j,k, 0)>0) + for (i=0;iGetScalarComponentAsDouble(i,j,k, 0)==0) + GETVALUE_VTK_CREA(vBIP,pBIP,sTBIP) + if (vBIP>0) { - manualpaintmodel->PaintImage(i,j,k); - } // bbGetInputImage2 - } // GetScalarComponentAsDouble - }// for k - }// for j - }// for i - printf("ManualPaint_Model %d%\n", 100 ); - } // if ByImagePoints - } else { - printf("EED Warning: Image not set. Box creaMaracasVisu::ManualPaint_Model (BBTK) \n"); - } // if + GETVALUE_VTK_CREA(vI2,pI2,sTI2) + if (vI2==0) + { + manualpaintmodel->PaintImage(i,j,k); + // manualpaintmodel->SetUndoImage(); // Probably needed. Here is ok. + } // vI2 + } // vBIP + pBIP = pBIP + sSBIP; + pI2 = pI2 + sSI2; + }// for i + }// for j + }// for k + printf("ManualPaint_Model %d%\n", 100 ); + } // if ByImagePoints + } else { + printf("EED Warning: ByImagePoints or Image2 not set. Box creaMaracasVisu::ManualPaint_Model (BBTK) \n"); + } // if ((bbGetInputByImagePoints()!=NULL) && (bbGetInputImage2()!=NULL) ) + } // if active if (bbGetInputImage2()!=NULL) { @@ -100,6 +122,7 @@ void ManualPaint_Model::Process() } else { bbSetOutputOut( NULL ); } + bbSetOutputManualpaintmodel( manualpaintmodel ); } //===== // 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) @@ -111,30 +134,26 @@ void ManualPaint_Model::bbUserSetDefaultValues() // Here we initialize the input 'In' to 0 bbSetInputActive(true); - bbSetInputTool(1); // Paint - bbSetInput2D3D(1); // 3D + bbSetInputTool(1); // Paint + bbSetInput2D3D(1); // 3D bbSetInputImage(NULL); bbSetInputImage2(NULL); bbSetInputGrayLevel(100); - bbSetInputDirection(2); // XY + bbSetInputDirection(2); // XY bbSetInputBrushSize(3); - bbSetInputBrushForm(1); // sphere + bbSetInputBrushForm(1); // sphere bbSetInputToleranceFill(50); bbSetInputDistanceFill(25); - std::vector 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); bbSetInputRange(range); - bbSetInputByImagePoints(NULL); - } //===== // 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) @@ -146,10 +165,7 @@ void ManualPaint_Model::bbUserInitializeProcessing() // Here does nothing // but this is where you should allocate the internal/output pointers // if any - - manualpaintmodel=new ManualPaintModel(); - - + manualpaintmodel=new ManualPaintModel(); } //===== // 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)