]> Creatis software - creaMaracasVisu.git/commitdiff
*** empty log message ***
authorEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Wed, 27 Oct 2010 10:14:08 +0000 (10:14 +0000)
committerEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Wed, 27 Oct 2010 10:14:08 +0000 (10:14 +0000)
bbtk/src/bbcreaMaracasVisuManualPaint.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp
lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp
lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp
lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.h

index 1f19f5b157db44914fac4cb4dba016cf37114b11..db005f22c7c8f7c752b47cb8efbd8c203073e6ff 100644 (file)
@@ -67,7 +67,7 @@ void ManualPaint::Process()
             ManualPaintControler    *mpControler    = new ManualPaintControler();
             mpControler->SetManualPaintModel(mpModel);
             mpControler->SetManualPaintPanel(mpPanel);
-            mpControler->SetWxVtkBaseView( bbGetInputWxVtkBaseView1() );
+            mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView1() );
             mpControler->Config();
         }
 
@@ -76,7 +76,7 @@ void ManualPaint::Process()
             ManualPaintControler    *mpControler    = new ManualPaintControler();
             mpControler->SetManualPaintModel(mpModel);
             mpControler->SetManualPaintPanel(mpPanel);
-            mpControler->SetWxVtkBaseView( bbGetInputWxVtkBaseView2() );
+            mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView2() );
             mpControler->Config();
         }
 
@@ -85,7 +85,7 @@ void ManualPaint::Process()
             ManualPaintControler    *mpControler    = new ManualPaintControler();
             mpControler->SetManualPaintModel(mpModel);
             mpControler->SetManualPaintPanel(mpPanel);
-            mpControler->SetWxVtkBaseView( bbGetInputWxVtkBaseView3() );
+            mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView3() );
             mpControler->Config();
         }
 
@@ -94,12 +94,10 @@ void ManualPaint::Process()
             ManualPaintControler    *mpControler    = new ManualPaintControler();
             mpControler->SetManualPaintModel(mpModel);
             mpControler->SetManualPaintPanel(mpPanel);
-            mpControler->SetWxVtkBaseView( bbGetInputWxVtkBaseView4() );
+            mpControler->SetWxVtk2DBaseView( (wxVtk2DBaseView*)bbGetInputWxVtkBaseView4() );
             mpControler->Config();
         }
 
-
-
     }
 
 }
index c23e6f4f42804a1d9f1db795169e8c2b3ba9b872..dc4fea127419f1bfb89f3b726e1dfa45afdf20e0 100644 (file)
@@ -1,13 +1,13 @@
 
 #include "ManualPaintControler.h"
 #include "vtkInteractorManualPaint.h"
-#include "wxVtk2DBaseView.h"
 #include "vtkImageActor.h"
 
 //---------------------------------------------------------------------------
 ManualPaintControler::ManualPaintControler()
 {
     auxZ=0;
+    _wxvtk2Dbaseview=NULL;
 }
 
 //---------------------------------------------------------------------------
@@ -28,16 +28,19 @@ void ManualPaintControler::SetManualPaintPanel(ManualPaintPanel* manualPaintPane
 }
 
 //---------------------------------------------------------------------------
-void ManualPaintControler::SetWxVtkBaseView(wxVtkBaseView *baseview)
+void ManualPaintControler::SetWxVtk2DBaseView(wxVtk2DBaseView *wxvtk2Dbaseview)
 {
-    _wxvtkbaseview = baseview;
+    _wxvtk2Dbaseview = wxvtk2Dbaseview;
 }
 
 //---------------------------------------------------------------------------
 void ManualPaintControler::Config()
 {
-    vtkInteractorStyleBaseView *isbv    = (vtkInteractorStyleBaseView*)(_wxvtkbaseview->GetInteractorStyleBaseView());
-    isbv->AddInteractorStyleMaracas( new vtkInteractorManualPaint(this) );
+    if (_wxvtk2Dbaseview!=NULL)
+    {
+        vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*)(_wxvtk2Dbaseview->GetInteractorStyleBaseView());
+        isbv->AddInteractorStyleMaracas( new vtkInteractorManualPaint(this) );
+    }
 }
 
 
@@ -45,10 +48,11 @@ void ManualPaintControler::Config()
 //---------------------------------------------------------------------------
 void ManualPaintControler::PaintImage(int px,int py, int pz)
 {
+    _manualPaintModel->SetDirection( _wxvtk2Dbaseview->GetDirection() );
     _manualPaintModel->PaintImage(px,py,pz);
 
-    //The refresh mechanisme is made in the vtkInteractorManualPaint
-//    RefreshView();
+    // The refresh mechanisme is made in the vtkInteractorManualPaint
+    //    RefreshView();
 }
 
 //---------------------------------------------------------------------------
index c36e80d3ab42cd35d3d2c6bc5df72cb670c73479..33e6abdd9f0e8c4b86618bb3eefea2f51aeadd5a 100644 (file)
@@ -3,7 +3,7 @@
 
 #include "ManualPaintModel.h"
 #include "ManualPaintPanel.h"
-#include "wxVtkBaseView.h"
+#include "wxVtk2DBaseView.h"
 
 
 class ManualPaintControler  {
@@ -13,7 +13,7 @@ public:
 
     void SetManualPaintModel(ManualPaintModel* manualPaintModel);
     void SetManualPaintPanel(ManualPaintPanel* manualPaintPanel);
-    void SetWxVtkBaseView(wxVtkBaseView *baseview);
+    void SetWxVtk2DBaseView(wxVtk2DBaseView *wxvtk2Dbaseview);
     void Config();
     void PaintImage(int px,int py, int pz);
 
@@ -21,7 +21,7 @@ private:
     int                 auxZ;
        ManualPaintModel        *_manualPaintModel;
        ManualPaintPanel        *_manualPaintPanel;
-       wxVtkBaseView       *_wxvtkbaseview;
+       wxVtk2DBaseView     *_wxvtk2Dbaseview;
 
 protected:
 
index ab44d0afe8d0c856963e233c53edad95f827a9ce..32d682779874ed9b65493bf13184d5b8c00884de 100644 (file)
@@ -4,25 +4,34 @@
 
 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 pencil         ,   1 fill
-
-    _minX=0;
-    _minY=0;
-    _minZ=0;
-    _maxX=0;
-    _maxY=0;
-    _maxZ=0;
+    _graylevel          =   0.0;
+    _brushsize          =   1;
+    _brushform          =   0;      // 0 rectangle-box  ,   1 circle-sphere
+    _2D3D               =   1;      // 0 2D             ,   1 true 3D
+    _brushtool          =   0;      // 0 pencil         ,   1 fill
+    _direction          =   0;      // 1 XZ             ,   0 YZ            ,   2 XY
+    _tolerancefill      =   50;
+    _distancefill       =   500;
+    _limitRecursionFill =   100000;
+    _minX               =   0;
+    _minY               =   0;
+    _minZ               =   0;
+    _maxX               =   0;
+    _maxY               =   0;
+    _maxZ               =   0;
+    _auxImageFill       =   NULL;
 }
 
 //---------------------------------------------------------------------------
 ManualPaintModel::~ManualPaintModel()
 {
+    if (_auxImageFill!=NULL)
+    {
+        _auxImageFill->Delete();
+    }
 }
 
+//---------------------------------------------------------------------------
 void ManualPaintModel::SetImage(vtkImageData *image)
 {
     _image=image;
@@ -35,8 +44,23 @@ void ManualPaintModel::SetImage(vtkImageData *image)
     _maxX=ext[1]-ext[0];
     _maxY=ext[3]-ext[2];
     _maxZ=ext[5]-ext[4];
+
+
+    if (_auxImageFill!=NULL)
+    {
+        _auxImageFill->Delete();
+    }
+       _auxImageFill = vtkImageData::New();
+       _auxImageFill->SetDimensions(_maxX+1,_maxY+1,_maxZ+1);
+       _auxImageFill->SetOrigin(0,0,0);
+       _auxImageFill->SetExtent( 0 , _maxX , 0 , _maxY , 0, _maxZ );
+       _auxImageFill->SetWholeExtent( 0 , _maxX , 0 , _maxY , 0, _maxZ );
+       _auxImageFill->SetScalarTypeToUnsignedChar();
+       _auxImageFill->AllocateScalars();
+
 }
 
+//---------------------------------------------------------------------------
 void ManualPaintModel::PaintImage(int px,int py, int pz)
 {
     if (_brushtool==0)
@@ -50,66 +74,234 @@ void ManualPaintModel::PaintImage(int px,int py, int pz)
 }
 
 
+//---------------------------------------------------------------------------
 void ManualPaintModel::FillTool(int px,int py, int pz)
 {
     if ((px>=_minX) && (px<=_maxX) && (py>=_minY) && (py<=_maxY) && (pz>=_minZ) && (pz<=_maxZ))
     {
-        _graylevelbasefill  = _image->GetScalarComponentAsDouble(px,py,pz, 0);
-        _pxfill             = px;
-        _pyfill             = py;
-        _pzfill             = pz;
-        _distbasefill       = _distancefill*_distancefill;
+        _graylevelbasefill          = _image->GetScalarComponentAsDouble(px,py,pz, 0);
+        _pxfill                     = px;
+        _pyfill                     = py;
+        _pzfill                     = pz;
+        _distbasefill               = _distancefill*_distancefill;
+        _countRecursiveFill         = 0;
+        _countRecursiveFillProblem  = 0;
+        _countProgressingFill       = 0;
+        unsigned char *pImage = (unsigned char *)_auxImageFill->GetScalarPointer();
+        _usingAuxImageFill=false;
+        memset ( pImage , 0 , _maxX*_maxY*_maxZ );
+
         FillToolRecursive(px,py,pz);
+        printf("--\n");
+
+        int ii,jj,kk;
+        while (_countRecursiveFillProblem!=0)
+        {
+            _countRecursiveFillProblem  = 0;
+            _usingAuxImageFill=true;
+            for(ii=0;ii<=_maxX;ii++)
+            {
+                for(jj=0;jj<=_maxY;jj++)
+                {
+                    for(kk=0;kk<=_maxZ;kk++)
+                    {
+                        pImage=(unsigned char *)_auxImageFill->GetScalarPointer(ii,jj,kk);
+                        if ( (*pImage)==1 )
+                        {
+                            FillToolRecursive(ii,jj,kk);
+                        }
+                    } // for kk
+                } // for jj
+            } //for ii
+            printf("-\n");
+        } // while
+
     } //if _minX _maxX _minY _maxY _minZ _maxZ
 }
 
 
+//---------------------------------------------------------------------------
 void ManualPaintModel::FillToolRecursive(int px,int py, int pz)
 {
+    _countRecursiveFill++;
 
-    double dist=(px-_pxfill) * (px-_pxfill)  + (py-_pyfill) * (py-_pyfill)   + (pz-_pzfill) * (pz-_pzfill);
+    _countProgressingFill++;
+    if (_countProgressingFill>200000)
+    {
+        printf("R %ld \n", _countRecursiveFill );
+        _countProgressingFill=0;
+    }
 
     if ((px>=_minX) && (px<=_maxX) && (py>=_minY) && (py<=_maxY) && (pz>=_minZ) && (pz<=_maxZ))
     {
-        float value=(float)_graylevel;
-        double igl=_image->GetScalarComponentAsDouble(px,py,pz, 0);
-        if (  (igl!=_graylevel) &&
-              (igl>=_graylevelbasefill-_tolerancefill) &&
-              (igl<=_graylevelbasefill+_tolerancefill) &&
-              (dist<=_distbasefill)
-            )
+        if (_usingAuxImageFill==true)
         {
-//            _image->SetScalarComponentFromFloat (px,py,pz, 0, dist+500 );
-            _image->SetScalarComponentFromFloat (px,py,pz, 0, value );
-            FillToolRecursive(px+1,py,pz);
-            FillToolRecursive(px,py+1,pz);
-            FillToolRecursive(px-1,py,pz);
-            FillToolRecursive(px,py-1,pz);
-//        FillToolRecursive(px,py,pz-1);
-//        FillToolRecursive(px,py,pz+1);
+            _auxImageFill->SetScalarComponentFromFloat (px, py, pz,0, 0);
         }
+        _tmpDistfill=(px-_pxfill)*(px-_pxfill)  + (py-_pyfill)*(py-_pyfill) + (pz-_pzfill)*(pz-_pzfill);
+        _tmpiglfill=_image->GetScalarComponentAsDouble(px,py,pz, 0);
+
+        _auxGrayLevelValidationFill =   (_tmpiglfill!=_graylevel) &&
+                                        (_tmpiglfill>=_graylevelbasefill-_tolerancefill) &&
+                                        (_tmpiglfill<=_graylevelbasefill+_tolerancefill) &&
+                                        (_tmpDistfill<=_distbasefill);
+
+        if (  _auxGrayLevelValidationFill==true )
+        {
+            _image->SetScalarComponentFromFloat (px,py,pz, 0, (float)_graylevel );
+
+            if (_countRecursiveFill< _limitRecursionFill)
+            {
+
+                if (_2D3D==0) //2D
+                {
+                    if (_direction==0)  // YZ
+                    {
+                        //FillToolRecursive(px+1,py,pz);
+                        //FillToolRecursive(px-1,py,pz);
+                        FillToolRecursive(px,py+1,pz);
+                        FillToolRecursive(px,py-1,pz);
+                        FillToolRecursive(px,py,pz-1);
+                        FillToolRecursive(px,py,pz+1);
+                    }
+                    if (_direction==1) // XZ
+                    {
+                        FillToolRecursive(px+1,py,pz);
+                        FillToolRecursive(px-1,py,pz);
+                        //FillToolRecursive(px,py+1,pz);
+                        //FillToolRecursive(px,py-1,pz);
+                        FillToolRecursive(px,py,pz-1);
+                        FillToolRecursive(px,py,pz+1);
+                    }
+                    if (_direction==2) // XY
+                    {
+                        FillToolRecursive(px+1,py,pz);
+                        FillToolRecursive(px,py+1,pz);
+                        FillToolRecursive(px-1,py,pz);
+                        FillToolRecursive(px,py-1,pz);
+                        //FillToolRecursive(px,py,pz-1);
+                        //FillToolRecursive(px,py,pz+1);
+                    }
+                } else  {   // 3D
+
+                    FillToolRecursive(px+1,py,pz);
+                    FillToolRecursive(px-1,py,pz);
+                    FillToolRecursive(px,py+1,pz);
+                    FillToolRecursive(px,py-1,pz);
+                    FillToolRecursive(px,py,pz-1);
+                    FillToolRecursive(px,py,pz+1);
+                } // 2D 3D
+
+            } //_countRecursiveFill
+        } // _graylevel
+
+
+        if (  (_auxGrayLevelValidationFill==true ) &&
+              (_countRecursiveFill>= _limitRecursionFill)
+            )
+        {
+            _countRecursiveFillProblem++;
+
+                if (_2D3D==0) //2D
+                {
+                    if (_direction==0)  // YZ
+                    {
+                        //SetAuxImageFill(px+1,py,pz);
+                        //SetAuxImageFill(px-1,py,pz);
+                        SetAuxImageFill(px,py+1,pz);
+                        SetAuxImageFill(px,py-1,pz);
+                        SetAuxImageFill(px,py,pz-1);
+                        SetAuxImageFill(px,py,pz+1);
+                    }
+                    if (_direction==1) // XZ
+                    {
+                        SetAuxImageFill(px+1,py,pz);
+                        SetAuxImageFill(px-1,py,pz);
+                        //SetAuxImageFill(px,py+1,pz);
+                        //SetAuxImageFill(px,py-1,pz);
+                        SetAuxImageFill(px,py,pz-1);
+                        SetAuxImageFill(px,py,pz+1);
+                    }
+                    if (_direction==2) // XY
+                    {
+                        SetAuxImageFill(px+1,py,pz);
+                        SetAuxImageFill(px-1,py,pz);
+                        SetAuxImageFill(px,py+1,pz);
+                        SetAuxImageFill(px,py-1,pz);
+                        //SetAuxImageFill(px,py,pz-1);
+                        //SetAuxImageFill(px,py,pz+1);
+                    }
+                } else  {   // 3D
+
+                    SetAuxImageFill(px+1,py,pz);
+                    SetAuxImageFill(px-1,py,pz);
+                    SetAuxImageFill(px,py+1,pz);
+                    SetAuxImageFill(px,py-1,pz);
+                    SetAuxImageFill(px,py,pz-1);
+                    SetAuxImageFill(px,py,pz+1);
+                } // 2D 3D
+
+        } // _graylevel   //_limitRecursionFill
+
+
     } //if _minX _maxX _minY _maxY _minZ _maxZ
+
+
+    _countRecursiveFill--;
+
 }
 
-void ManualPaintModel::BrushTool(int px,int py, int pz)
+//---------------------------------------------------------------------------
+void ManualPaintModel::SetAuxImageFill(int px,int py, int pz)
 {
+    if ((px>=_minX) && (px<=_maxX) && (py>=_minY) && (py<=_maxY) && (pz>=_minZ) && (pz<=_maxZ))
+    {
+        _auxImageFill->SetScalarComponentFromFloat (px, py, pz,0, 1);
+    }
+}
 
-    printf("EED ManualPaintModel::PaintImage %d %d %d\n", px,py,pz);
+//---------------------------------------------------------------------------
+void ManualPaintModel::BrushTool(int px,int py, int 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;
+
+        int minX = px-size;
+        int maxX = px+size;
+        int minY = py-size;
+        int maxY = py+size;
+        int minZ = pz-size;
+        int 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
+        {
+        }
+
 
         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;
@@ -189,3 +381,8 @@ void ManualPaintModel::SetDistanceFill(int distancefill)
     _distancefill = distancefill;
 }
 
+//---------------------------------------------------------------------------
+void ManualPaintModel::SetDirection(int direction)
+{
+    _direction = direction;
+}
index 75dd16e04ea7540717c9c71e0b4b7ac5acd0b862..a0d7af85bb833e92894ec112c0ae2731b5d8b6b3 100644 (file)
@@ -23,6 +23,7 @@ public:
     void BrushTool(int px,int py, int pz);
     void SetToleranceFill(double tolerancefill);
     void SetDistanceFill(int distancefill);
+    void SetDirection(int direction);
 
 private:
     vtkImageData    *_image;
@@ -40,11 +41,24 @@ private:
     double          _tolerancefill;
     int             _distancefill;
     double          _graylevelbasefill;
+    int             _direction;
 
     int             _pxfill;
     int             _pyfill;
     int             _pzfill;
     double          _distbasefill;
+    double          _tmpDistfill;
+    double          _tmpiglfill;
+    long int        _countRecursiveFill;
+    long int        _countRecursiveFillProblem;
+    vtkImageData    *_auxImageFill;
+    bool             _usingAuxImageFill;
+    bool             _auxGrayLevelValidationFill;
+    long int        _countProgressingFill;
+    long int        _limitRecursionFill;
+
+
+    void    SetAuxImageFill(int px,int py, int pz);
 
 protected:
 
index 3170c69e8f8087ddbc4590e844a0e197ed899d4b..4d9a5e7e08a095f9bc0481fce813613731ecafda 100644 (file)
@@ -11,7 +11,7 @@ wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent)
 
        // Widget interface
        wxStaticText    *tittleText                 = new wxStaticText(panel, -1, _T("             Manual Paint"));
-       wxStaticText    *txtBrushSize       = new wxStaticText(panel, -1, wxString(_T("  Brush size  ")));
+                     _txtBrushSize      = new wxStaticText(panel, -1, wxString(_T("  Brush size  ")));
                      _sldBrushSize      = new wxSlider(panel, -1, 1, 1, 20, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
        wxStaticText    *txtGrayLevel       = new wxStaticText(panel, -1, wxString(_T("  Gray Level  ")));
                      _sldGrayLevel      = new wxSlider(panel, -1, 0, 0, 50, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
@@ -20,8 +20,8 @@ wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent)
                      _sldToleranceFill  = new wxSlider(panel, -1, 50, 0, 50, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
                      _tolerancefillCtrl = new wxTextCtrl(panel , -1,_T("50") );
                      _txtDistanceFill   = new wxStaticText(panel, -1, wxString(_T("  Distance fill  ")));
-                     _sldDistanceFill   = new wxSlider(panel, -1, 50, 1, 50, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-                     _distancefillCtrl  = new wxTextCtrl(panel , -1,_T("50") );
+                     _sldDistanceFill   = new wxSlider(panel, -1, 500, 1, 500, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
+                     _distancefillCtrl  = new wxTextCtrl(panel , -1,_T("500") );
 
 
        wxString lst2D3D[2];
@@ -75,6 +75,9 @@ wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent)
     sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
     sizer1->Add(tittleText);
 
+    sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
+    sizer1->Add(_rbBrushTool, 1, wxGROW );
+
     sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
     sizer1->Add(txtGrayLevel);
     sizer1->Add(_sldGrayLevel, 1, wxGROW );
@@ -83,11 +86,9 @@ wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent)
     sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
     sizer1->Add(_rb2D3D, 1, wxGROW );
 
-    sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
-    sizer1->Add(_rbBrushTool, 1, wxGROW );
 
     sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
-    sizer1->Add(txtBrushSize);
+    sizer1->Add(_txtBrushSize);
     sizer1->Add(_sldBrushSize, 1, wxGROW );
 
     sizer1->Add(new wxStaticText(panel,-1,_T("  ")));
@@ -195,6 +196,7 @@ void wxManualPaintPanel::OnCtrTxtToleranceFill(wxCommandEvent &event)
 //---------------------------------------------------------------------------
 void wxManualPaintPanel::DisableControls()
 {
+    _txtBrushSize->Disable();
     _sldBrushSize->Disable();
     _rbBrushForm->Disable();
 
@@ -228,6 +230,7 @@ void wxManualPaintPanel::OnBrushTool(wxCommandEvent &event)
 
     if (_rbBrushTool->GetSelection()==0)  //Brush tool
     {
+        _txtBrushSize->Enable();
         _sldBrushSize->Enable();
         _rbBrushForm->Enable();
     }
index 79f053db2c75021b37d3bdb7dfd0e306be44cdab..1bf342e9466bf51bf7655945cc4d231e5c009df2 100644 (file)
@@ -24,7 +24,9 @@ public:
     void OnCtrTxtDistanceFill(wxCommandEvent &event);
 
 private:
+    wxStaticText    *_txtBrushSize;
     wxSlider        *_sldBrushSize;
+
     wxSlider        *_sldGrayLevel;
     wxTextCtrl      *_graylevelCtrl;
     wxRadioBox      *_rbBrushForm;
index c3f8516aef1319a0bca14bee41986cc902865aed..a109665df029a051d7b844105f8720ff207de229 100644 (file)
@@ -299,7 +299,6 @@ vtkRenderWindow* wxVtk2DBaseView::GetRenWin()               // virtual
 }
 
 //-------------------------------------------------------------------
-
 void wxVtk2DBaseView::GetSpacing(double spc[3])  // virtual
 {
    vtkImageData *imageData     = GetVtkBaseData()->GetImageData();
@@ -312,14 +311,18 @@ void wxVtk2DBaseView::GetSpacing(double spc[3])  // virtual
    }
 }
 
-void wxVtk2DBaseView::setColorTransferFunction(vtkColorTransferFunction* colortable){
+//-------------------------------------------------------------------
+void wxVtk2DBaseView::setColorTransferFunction(vtkColorTransferFunction* colortable)
+{
        if(_imageViewer2XYZ!=NULL){
                _imageViewer2XYZ->setColorTransferFunction(colortable);
                this->Refresh();
        }
 }
 
-void wxVtk2DBaseView::setWindowLevel(double level){
+//-------------------------------------------------------------------
+void wxVtk2DBaseView::setWindowLevel(double level)
+{
 //     _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow(level);
 
        vtkImageMapToWindowLevelColors* imagemaptowindowlevel = _imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel();
@@ -327,9 +330,18 @@ void wxVtk2DBaseView::setWindowLevel(double level){
        this->Refresh();
 }
 
-void wxVtk2DBaseView::setColorLevel(double level){
+//-------------------------------------------------------------------
+void wxVtk2DBaseView::setColorLevel(double level)
+{
 //     _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel(level);
        vtkImageMapToWindowLevelColors* imagemaptowindowlevel = _imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel();
        imagemaptowindowlevel->SetLevel(level);
        this->Refresh();
 }
+
+//-------------------------------------------------------------------
+int wxVtk2DBaseView::GetDirection() // virtual
+{
+    return 2;
+}
+
index 37fd7270f5834e347d6136bf0855a0d2fe38e370..6903109de2e6cd1fcc4fde3f8d6eee71c649a8e7 100644 (file)
@@ -40,6 +40,8 @@ public:
        void setWindowLevel(double level);
 
        void setColorLevel(double level);
+    virtual int GetDirection();
+
 
 private:
        vtkBaseData                                                     *_vtkbasedata;
index 06d455d83220874460bca3fd7e9537758d396f68..32d4fc3fe9e9d253f46957d5cdcdb72268a10f44 100644 (file)
@@ -539,6 +539,12 @@ void wxVtkMPR2DView::TransFromCoordScreenToWorld(double &X, double &Y, double &Z
 
 }
 
+//-------------------------------------------------------------------
+int wxVtkMPR2DView::GetDirection() // virtual
+{
+    return _direction;
+}
+
 
 //-------------------------------------------------------------------
 //-------------------------------------------------------------------
index b4d15a07d558b90fff161aec9b97ab94aab878f1..8c62a27dc5a578c49ec5538f1d14e31d665b2699 100644 (file)
@@ -30,8 +30,9 @@ public:
                        void                    MoveZ(double x, double y, double z);
                        void                    ChangeAxisColor(double x, double y, double z);
        virtual void                    TransFromCoordScreenToWorld(double &X, double &Y, double &Z, bool keepNormalDirection=false, int type=2);
-       
+
                        void                    SetVisibleAxis(bool ok);
+    virtual int             GetDirection();
 
 
 
@@ -52,7 +53,7 @@ private:
        vtkActor                                        *_lineBActor;
        vtkPolyDataMapper                       *_lineBMapper;
     vtkPolyData                                        *_pdB;
-//     vtkInteractorStyle2DMaracas     *_interactorStyle2DMaracas; 
+//     vtkInteractorStyle2DMaracas     *_interactorStyle2DMaracas;
        vtkInteractorStyleMPRView       *_interactorstylemprview;
 };