]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp
no message
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / ManualPaintModel.cpp
index a9a84e0b074fb23248bd587d133f58e635732beb..17a86cf96f2faa06c40ba10995fe66c25268542e 100644 (file)
 
 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 );
 }