From 897b3f6aeec3179a0afed6b1657ed426693c80de Mon Sep 17 00:00:00 2001 From: Eduardo Davila Date: Wed, 27 Oct 2010 10:14:08 +0000 Subject: [PATCH] *** empty log message *** --- bbtk/src/bbcreaMaracasVisuManualPaint.cxx | 10 +- .../manualPaint/ManualPaintControler.cpp | 18 +- .../manualPaint/ManualPaintControler.h | 6 +- .../widgets/manualPaint/ManualPaintModel.cpp | 281 +++++++++++++++--- .../widgets/manualPaint/ManualPaintModel.h | 14 + .../manualPaint/wxManualPaintPanel.cpp | 15 +- .../widgets/manualPaint/wxManualPaintPanel.h | 2 + .../wxWindows/widgets/wxVtk2DBaseView.cxx | 20 +- .../wxWindows/widgets/wxVtk2DBaseView.h | 2 + .../wxWindows/widgets/wxVtkMPR2DView.cxx | 6 + .../wxWindows/widgets/wxVtkMPR2DView.h | 5 +- 11 files changed, 309 insertions(+), 70 deletions(-) diff --git a/bbtk/src/bbcreaMaracasVisuManualPaint.cxx b/bbtk/src/bbcreaMaracasVisuManualPaint.cxx index 1f19f5b..db005f2 100644 --- a/bbtk/src/bbcreaMaracasVisuManualPaint.cxx +++ b/bbtk/src/bbcreaMaracasVisuManualPaint.cxx @@ -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(); } - - } } diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp index c23e6f4..dc4fea1 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp @@ -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(); } //--------------------------------------------------------------------------- diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.h index c36e80d..33e6abd 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.h @@ -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: diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp index ab44d0a..32d6827 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp @@ -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; +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h index 75dd16e..a0d7af8 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h @@ -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: diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp index 3170c69..4d9a5e7 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp @@ -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(); } diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h index 79f053d..1bf342e 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h @@ -24,7 +24,9 @@ public: void OnCtrTxtDistanceFill(wxCommandEvent &event); private: + wxStaticText *_txtBrushSize; wxSlider *_sldBrushSize; + wxSlider *_sldGrayLevel; wxTextCtrl *_graylevelCtrl; wxRadioBox *_rbBrushForm; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx index c3f8516..a109665 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx @@ -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; +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.h index 37fd727..6903109 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.h @@ -40,6 +40,8 @@ public: void setWindowLevel(double level); void setColorLevel(double level); + virtual int GetDirection(); + private: vtkBaseData *_vtkbasedata; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx index 06d455d..32d4fc3 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx @@ -539,6 +539,12 @@ void wxVtkMPR2DView::TransFromCoordScreenToWorld(double &X, double &Y, double &Z } +//------------------------------------------------------------------- +int wxVtkMPR2DView::GetDirection() // virtual +{ + return _direction; +} + //------------------------------------------------------------------- //------------------------------------------------------------------- diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.h index b4d15a0..8c62a27 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.h @@ -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; }; -- 2.45.1