X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FmanualPaint%2FManualPaintModel.cpp;h=17a86cf96f2faa06c40ba10995fe66c25268542e;hb=a8ed15d5eeade921d0b185b04cc6d55be5e57c76;hp=a9a84e0b074fb23248bd587d133f58e635732beb;hpb=965c602117e9de99019d49bd78ca1d707a1a6bd2;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 a9a84e0..17a86cf 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp @@ -4,65 +4,110 @@ ManualPaintModel::ManualPaintModel() { - _graylevel=0.0; - _brushsize=1; + _tool = 0; // 0 pencil , 1 fill + _brushfilter = new BrushFilter(); + _fillfilter = new FillFilter(); } //--------------------------------------------------------------------------- ManualPaintModel::~ManualPaintModel() { + delete _brushfilter; + delete _fillfilter; } +//--------------------------------------------------------------------------- +void ManualPaintModel::PaintImage(int px,int py, int pz) +{ + if (_tool==0) + { + _brushfilter->SetPoint(px,py,pz); + _brushfilter->Run(); + } + if (_tool==1) + { + _fillfilter->SetPoint(px,py,pz); + _fillfilter->Run(); + } +} + +//--------------------------------------------------------------------------- +void ManualPaintModel::SetTool( int tool ) +{ + _tool = tool; +} + +//--------------------------------------------------------------------------- +void ManualPaintModel::Set2D3D( int dim2D3D ) +{ + _brushfilter->Set2D3D(dim2D3D); + _fillfilter->Set2D3D(dim2D3D); +} + + +//--------------------------------------------------------------------------- void ManualPaintModel::SetImage(vtkImageData *image) { - _image=image; + _brushfilter->SetImage(image); + _fillfilter->SetImage(image); } -void ManualPaintModel::PaintImage(int px,int py, int pz) +//--------------------------------------------------------------------------- +void ManualPaintModel::SetGrayLevel( double graylevel ) { - 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; - - for (i=minX; i<=maxX; i++) - { - for (j=minY; j<=maxY; j++) - { - for (k=minZ; k<=maxZ; k++) - { - _image->SetScalarComponentFromFloat (i,j,k, 0, value ); - } - } - } - _image->Modified(); - _image->UpdateInformation(); - _image->Update(); - _image->UpdateData(); - } else { - printf("ERROR : bbcreaMaracasvisu::vtkInteractorManualPaint::PaintImage : Image not set. \n"); - } + _brushfilter->SetGrayLevel(graylevel); + _fillfilter->SetGrayLevel(graylevel); +} + +//--------------------------------------------------------------------------- +void ManualPaintModel::SetRangeMin( int min ) +{ + _brushfilter->SetRangeMin(min); + _fillfilter->SetRangeMin(min); +} + +//--------------------------------------------------------------------------- +void ManualPaintModel::SetRangeMax( int max ) +{ + _brushfilter->SetRangeMax(max); + _fillfilter->SetRangeMax(max); +} + +//--------------------------------------------------------------------------- +void ManualPaintModel::SetDirection(int direction) +{ + _brushfilter->SetDirection(direction); + _fillfilter->SetDirection(direction); } //--------------------------------------------------------------------------- void ManualPaintModel::SetBrushSize( int brushsize ) { - printf("EED %p ManualPaintModel::SetBrushSize \n", this); - _brushsize = brushsize; + _brushfilter->SetBrushSize(brushsize); +} + + +//--------------------------------------------------------------------------- +void ManualPaintModel::SetBrushForm( int brushform ) +{ + _brushfilter->SetBrushForm(brushform); } //--------------------------------------------------------------------------- -void ManualPaintModel::SetGrayLevel( double graylevel ) +void ManualPaintModel::SetToleranceFill(double tolerancefill) +{ + _fillfilter->SetToleranceFill(tolerancefill); +} + +//--------------------------------------------------------------------------- +void ManualPaintModel::SetDistanceFill(int distancefill) +{ + _fillfilter->SetDistanceFill(distancefill); +} +//--------------------------------------------------------------------------- +void ManualPaintModel::GetScalarRange( double * range ) { - printf("EED %p ManualPaintModel::SetGrayLevel \n", this); - _graylevel = graylevel; + _fillfilter->GetScalarRange( range ); }