]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/BrushFilter.cpp
DFCH: UndoRedo + ManualPaint - Code update. Undo beta1 working :) :) :)
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / BrushFilter.cpp
index d58d6db7d528ca24b7ef322d3fb07e85a81bbd94..bdbd267d4bdc75a3424c09640b00b6e91342c9b5 100644 (file)
-
 #include "BrushFilter.h"
 
-
-
-BrushFilter::BrushFilter()
-{
-    _brushsize          =   1;
-    _brushform          =   0;      // 0 rectangle-box  ,   1 circle-sphere
-    _brushtool          =   0;      // 0 pencil         ,   1 fill
+BrushFilter::BrushFilter() {
+       _brushsize = 1;
+       _brushform = 0; // 0 rectangle-box  ,   1 circle-sphere
+       _brushtool = 0; // 0 pencil         ,   1 fill
 }
 
 //---------------------------------------------------------------------------
-BrushFilter::~BrushFilter()  // virtual
+BrushFilter::~BrushFilter() // virtual
 {
 }
 
 //---------------------------------------------------------------------------
-void BrushFilter::FindMinMaxBrush(int &minX,int &maxX,int &minY,int &maxY,int &minZ,int &maxZ,int &size)
-{
-        size = _brushsize-1;
-        minX = _px-size;
-        maxX = _px+size;
-        minY = _py-size;
-        maxY = _py+size;
-        minZ = _pz-size;
-        maxZ = _pz+size;
-
-        if (_2D3D==0) //2D
-        {
-            if (_direction==0)  // YZ
-            {
-                minX=_px;
-                maxX=_px;
-            }
-            if (_direction==1) // XZ
-            {
-                minY=_py;
-                maxY=_py;
-            }
-            if (_direction==2) // XY
-            {
-                minZ=_pz;
-                maxZ=_pz;
-            }
-        }
-
-        if (_2D3D==1) // 3D
-        {
-        }
-
-       if (minX<_minX)
-        {
-               minX=_minX;
-        }
-
-       if (minY<_minY)
-        {
-               minY=_minY;
-        }
-
-       if (minZ<_minZ)
-        {
-               minZ=_minZ;
-        }
-
-       if (maxX>_maxX)
-        {
-               maxX=_maxX;
-        }
-
-       if (maxY>_maxY)
-        {
-               maxY=_maxY;
-        }
-
-       if (maxZ>_maxZ)
-        {
-               maxZ=_maxZ;
-        }
+void BrushFilter::FindMinMaxBrush(int &minX, int &maxX, int &minY, int &maxY,
+               int &minZ, int &maxZ, int &size) {
+       size = _brushsize - 1;
+       minX = _px - size;
+       maxX = _px + size;
+       minY = _py - size;
+       maxY = _py + size;
+       minZ = _pz - size;
+       maxZ = _pz + size;
+
+       if (_2D3D == 0) //2D
+                       {
+               if (_direction == 0) // YZ
+                               {
+                       minX = _px;
+                       maxX = _px;
+               }
+               if (_direction == 1) // XZ
+                               {
+                       minY = _py;
+                       maxY = _py;
+               }
+               if (_direction == 2) // XY
+                               {
+                       minZ = _pz;
+                       maxZ = _pz;
+               }
+       }
+
+       if (_2D3D == 1) // 3D
+                       {
+       }
+
+       if (minX < _minX) {
+               minX = _minX;
+       }
+
+       if (minY < _minY) {
+               minY = _minY;
+       }
+
+       if (minZ < _minZ) {
+               minZ = _minZ;
+       }
+
+       if (maxX > _maxX) {
+               maxX = _maxX;
+       }
+
+       if (maxY > _maxY) {
+               maxY = _maxY;
+       }
+
+       if (maxZ > _maxZ) {
+               maxZ = _maxZ;
+       }
 
        //--
-       SetGeneralMinMax(minX,maxX,minY,maxY,minZ,maxZ);
+       SetGeneralMinMax(minX, maxX, minY, maxY, minZ, maxZ);
 }
 
-
-
 //---------------------------------------------------------------------------
-void BrushFilter::Run()  // virtual
+void BrushFilter::Run() // virtual
 {
-    if (_image!=NULL)
-    {
-        float value=(float)_graylevel;
-        int i,j,k;
-
-       int size;
-        int minX,maxX,minY,maxY,minZ,maxZ;
-        FindMinMaxBrush(minX,maxX,minY,maxY,minZ,maxZ,size);
-
-        double xx,yy,zz,rr=size*size;
-
-        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++)
-                {
+       if (_image != NULL)
+       {
+               float value = (float) _graylevel;
+               this->_MRegion->value = (float) _graylevel;
+               int i, j, k;
+
+               int size;
+               int minX, maxX, minY, maxY, minZ, maxZ;
+               FindMinMaxBrush(minX, maxX, minY, maxY, minZ, maxZ, size);
+
+               double xx, yy, zz, rr = size * size;
+
+               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++) {
 //                    if ((i>=_minX) && (i<=_maxX) && (j>=_minY) && (j<=_maxY) && (k>=_minZ) && (k<=_maxZ))
 //                    {
 
-                         float scalarComponent = _image->GetScalarComponentAsFloat(i,j,k, 0);
-                         if( ( this->GetRangeMin() <=  scalarComponent ) && ( scalarComponent <=  this->GetRangeMax() ) )
-                         {
-                        zz=_pz-k;
-                        zz=zz*zz;
-                        if (_brushform==0)
-                        {
-                               this->CalculateMinMaxRegion(i,j,k); //DFCH
-                            _image->SetScalarComponentFromFloat (i,j,k, 0, value );
-                        } else if (_brushform==1)
-                        {
-                            if ((xx+yy+zz)<=rr)
-                            {
-                               this->CalculateMinMaxRegion(i,j,k); //DFCH
-                                _image->SetScalarComponentFromFloat (i,j,k, 0, value );
-                            }
-                        } // _brushform
-                         } //   GetRangeMin && GetRangeMax
+                                       float scalarComponent = _image->GetScalarComponentAsFloat(i,
+                                                       j, k, 0);
+                                       if ((this->GetRangeMin() <= scalarComponent)
+                                                       && (scalarComponent <= this->GetRangeMax())) {
+                                               zz = _pz - k;
+                                               zz = zz * zz;
+                                               if (_brushform == 0) {
+                                                       this->CalculateMinMaxRegion(i, j, k); //DFCH
+                                                       _image->SetScalarComponentFromFloat(i, j, k, 0,
+                                                                       value);
+                                               } else if (_brushform == 1) {
+                                                       if ((xx + yy + zz) <= rr) {
+                                                               this->CalculateMinMaxRegion(i, j, k); //DFCH
+                                                               _image->SetScalarComponentFromFloat(i, j, k, 0,
+                                                                               value);
+                                                       }
+                                               } // _brushform
+                                       } //   GetRangeMin && GetRangeMax
 
 //                    } //if _minX _maxX _minY _maxY _minZ _maxZ
 
-                }//k
-            }//j
-        }//i
-        _image->Modified();
-    } else  {
-        printf("ERROR : bbcreaMaracasvisu::vtkInteractorManualPaint::PaintImage :  Image not set. \n");
-    } // _image
+                               } //k
+                       } //j
+               } //i
+               _image->Modified();
+       } else {
+               printf(
+                               "ERROR : bbcreaMaracasvisu::vtkInteractorManualPaint::PaintImage :  Image not set. \n");
+       } // _image
 }
 
-
 //---------------------------------------------------------------------------
-void BrushFilter::SetBrushSize( int brushsize )
-{
-    _brushsize = brushsize;
+void BrushFilter::SetBrushSize(int brushsize) {
+       _brushsize = brushsize;
 }
 
 //---------------------------------------------------------------------------
-void BrushFilter::SetBrushForm( int brushform )
-{
-    _brushform = brushform;
+void BrushFilter::SetBrushForm(int brushform) {
+       _brushform = brushform;
 }
 
 //---------------------------------------------------------------------------
-void BrushFilter::SetBrushTool( int brushtool )
-{
-    _brushtool = brushtool;
+void BrushFilter::SetBrushTool(int brushtool) {
+       _brushtool = brushtool;
 }
 
 //---------------------------------------------------------------------------
-void BrushFilter::SetRangeMin( int min )
-{
-       _RangeMin  = min;
+void BrushFilter::SetRangeMin(int min) {
+       _RangeMin = min;
 }
 
 //---------------------------------------------------------------------------
-void BrushFilter::SetRangeMax( int max )
-{
-       _RangeMax  = max;
+void BrushFilter::SetRangeMax(int max) {
+       _RangeMax = max;
 }
 
 //---------------------------------------------------------------------------
-int BrushFilter::GetRangeMin( )
-{
-       return( _RangeMin );
+int BrushFilter::GetRangeMin() {
+       return (_RangeMin);
 }
 
 //---------------------------------------------------------------------------
-int BrushFilter::GetRangeMax(  )
-{
-       return( _RangeMax );
+int BrushFilter::GetRangeMax() {
+       return (_RangeMax);
 }
 
-