X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FmanualPaint%2FManualPaintModel.cpp;h=ee34a4a27638d75ab615250b4bf78a9dce7de7dc;hb=3eef3f302abd6996a4eaebb0536770bca9bf428d;hp=d6b0d5ba1f2eb8b6e004e261a56147df45330240;hpb=1875ac5ea44f35fb7259e847f628bb840e3964a8;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp index d6b0d5b..ee34a4a 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp @@ -4,102 +4,91 @@ ManualPaintModel::ManualPaintModel() { - _graylevel = 0.0; - _brushsize = 1; - _brushform = 0; // 0 rectangle-box , 1 circle-sphere - _2D3D = 0; // 0 2D , 1 true 3D - _brushtool = 0; // 0 pensil , 1 fill + _tool = 0; // 0 pencil , 1 fill + _brushfilter = new BrushFilter(); + _fillfilter = new FillFilter(); } //--------------------------------------------------------------------------- ManualPaintModel::~ManualPaintModel() { + delete _brushfilter; + delete _fillfilter; } -void ManualPaintModel::SetImage(vtkImageData *image) +//--------------------------------------------------------------------------- +void ManualPaintModel::PaintImage(int px,int py, int pz) { - _image=image; + if (_tool==0) + { + _brushfilter->SetPoint(px,py,pz); + _brushfilter->Run(); + } + if (_tool==1) + { + _fillfilter->SetPoint(px,py,pz); + _fillfilter->Run(); + } } -void ManualPaintModel::PaintImage(int px,int py, int pz) +//--------------------------------------------------------------------------- +void ManualPaintModel::SetTool( int tool ) { + _tool = tool; +} - printf("EED ManualPaintModel::PaintImage %d %d %d\n", px,py,pz); - if (_image!=NULL) - { - float value=(float)_graylevel; - int i,j,k; - int size = _brushsize-1; - int minX=px-size; - int maxX=px+size; - int minY=py-size; - int maxY=py+size; - int minZ=pz-size; - int maxZ=pz+size; - - double xx,yy,zz,rr=size*size; - - printf("EED bbcreaMaracasvisu::vtkInteractorManualPaint::PaintImage brushForm=%d\n",_brushform); - for (i=minX; i<=maxX; i++) - { - xx=px-i; - xx=xx*xx; - for (j=minY; j<=maxY; j++) - { - yy=py-j; - yy=yy*yy; - for (k=minZ; k<=maxZ; k++) - { - zz=pz-k; - zz=zz*zz; - if (_brushform==0) - { - _image->SetScalarComponentFromFloat (i,j,k, 0, value ); - } else if (_brushform==1) - { - if ((xx+yy+zz)<=rr) - { - _image->SetScalarComponentFromFloat (i,j,k, 0, value ); - } - } // _brushform - - }//k - }//j - }//i - _image->Modified(); - } else { - printf("ERROR : bbcreaMaracasvisu::vtkInteractorManualPaint::PaintImage : Image not set. \n"); - } // _image +//--------------------------------------------------------------------------- +void ManualPaintModel::Set2D3D( int dim2D3D ) +{ + _brushfilter->Set2D3D(dim2D3D); + _fillfilter->Set2D3D(dim2D3D); } //--------------------------------------------------------------------------- -void ManualPaintModel::SetBrushSize( int brushsize ) +void ManualPaintModel::SetImage(vtkImageData *image) { - _brushsize = brushsize; + _brushfilter->SetImage(image); + _fillfilter->SetImage(image); } //--------------------------------------------------------------------------- void ManualPaintModel::SetGrayLevel( double graylevel ) { - _graylevel = graylevel; + _brushfilter->SetGrayLevel(graylevel); + _fillfilter->SetGrayLevel(graylevel); } +//--------------------------------------------------------------------------- +void ManualPaintModel::SetDirection(int direction) +{ + _brushfilter->SetDirection(direction); + _fillfilter->SetDirection(direction); +} + + +//--------------------------------------------------------------------------- +void ManualPaintModel::SetBrushSize( int brushsize ) +{ + _brushfilter->SetBrushSize(brushsize); +} + + //--------------------------------------------------------------------------- void ManualPaintModel::SetBrushForm( int brushform ) { - _brushform = brushform; + _brushfilter->SetBrushForm(brushform); } //--------------------------------------------------------------------------- -void ManualPaintModel::SetBrushTool( int brushtool ) +void ManualPaintModel::SetToleranceFill(double tolerancefill) { - _brushtool = brushtool; + _fillfilter->SetToleranceFill(tolerancefill); } //--------------------------------------------------------------------------- -void ManualPaintModel::Set2D3D( int dim2D3D ) +void ManualPaintModel::SetDistanceFill(int distancefill) { - _2D3D = dim2D3D; + _fillfilter->SetDistanceFill(distancefill); }