From 1e74c6a806cb7f396fd6c5016c6803c391c466d7 Mon Sep 17 00:00:00 2001 From: Diego Caceres Date: Mon, 8 Aug 2011 16:38:07 +0000 Subject: [PATCH] Manual paint changes for tolerance range widget (Still not working) DFCH --- .../widgets/manualPaint/BrushFilter.cpp | 26 ++++++ .../widgets/manualPaint/BrushFilter.h | 7 ++ .../widgets/manualPaint/FillFilter.cpp | 24 +++++ .../widgets/manualPaint/FillFilter.h | 7 +- .../widgets/manualPaint/ManualPaintModel.cpp | 14 +++ .../widgets/manualPaint/ManualPaintModel.h | 2 + .../widgets/manualPaint/ManualPaintPanel.cpp | 22 +++++ .../widgets/manualPaint/ManualPaintPanel.h | 2 + .../manualPaint/vtkInteractorManualPaint.cpp | 1 + .../manualPaint/wxManualPaintPanel.cpp | 93 ++++++++++++++++--- .../widgets/manualPaint/wxManualPaintPanel.h | 16 ++++ 11 files changed, 202 insertions(+), 12 deletions(-) diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/BrushFilter.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/BrushFilter.cpp index a7b79aa..b61cf00 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/BrushFilter.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/BrushFilter.cpp @@ -154,4 +154,30 @@ void BrushFilter::SetBrushTool( int brushtool ) _brushtool = brushtool; } +//--------------------------------------------------------------------------- +void BrushFilter::SetRangeMin( unsigned int min ) +{ + std::cout<<"pechaaan Min: " << min <SetGrayLevel(graylevel); } +//--------------------------------------------------------------------------- +void ManualPaintModel::SetRangeMin( unsigned int min ) +{ + _brushfilter->SetRangeMin(min); + _fillfilter->SetRangeMin(min); +} + +//--------------------------------------------------------------------------- +void ManualPaintModel::SetRangeMax( unsigned int max ) +{ + _brushfilter->SetRangeMax(max); + _fillfilter->SetRangeMax(max); +} + //--------------------------------------------------------------------------- void ManualPaintModel::SetDirection(int direction) { diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h index ca60e18..c3199bb 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h @@ -20,6 +20,8 @@ public: void SetToleranceFill(double tolerancefill); void SetDistanceFill(int distancefill); void PaintImage(int px,int py, int pz); + void SetRangeMin( unsigned int min ); + void SetRangeMax( unsigned int max ); private: diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.cpp index 4f9cc81..6a108da 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.cpp @@ -32,6 +32,28 @@ void ManualPaintPanel::SetBrushSize( int brushsize ) } } +//--------------------------------------------------------------------------- +void ManualPaintPanel::SetRangeMin( unsigned int min ) +{ + if (_manualPaintModel!=NULL) + { + SetRangeMin( min ); + } else { + printf("ERROR in ManualPaintPanel _manualPaintModel not set.\n"); + } +} + +//--------------------------------------------------------------------------- +void ManualPaintPanel::SetRangeMax( unsigned int max ) +{ + if (_manualPaintModel!=NULL) + { + SetRangeMax( max ); + } else { + printf("ERROR in ManualPaintPanel _manualPaintModel not set.\n"); + } +} + //--------------------------------------------------------------------------- void ManualPaintPanel::SetGrayLevel( double graylevel ) { diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.h index 7856131..10e39de 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.h @@ -16,6 +16,8 @@ public: void SetBrushForm(int brushform); void SetToleranceFill(double tolerancefill); void SetDistanceFill(int distancefill); + void SetRangeMin( unsigned int min ); + void SetRangeMax( unsigned int max ); private: ManualPaintModel *_manualPaintModel; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.cpp index 4d9a620..65d918e 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.cpp @@ -54,6 +54,7 @@ bool vtkInteractorManualPaint::OnMouseMove () { if ((_state==true) || (_stateKey==true)) { + std::cout<<"Pechaaaaaannnnnnn!!!!"<GetWxVtk2DBaseView(); wxVTKRenderWindowInteractor *wxVTKiren = wxvtk2Dbaseview->GetWxVTKRenderWindowInteractor(); int px,py; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp index 78f1d03..03ca42d 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp @@ -22,7 +22,22 @@ wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent) _txtDistanceFill = new wxStaticText(panel, -1, wxString(_T(" Distance fill "))); _sldDistanceFill = new wxSlider(panel, -1, 500, 1, 500, wxDefaultPosition, wxDefaultSize, wxSL_LABELS); _distancefillCtrl = new wxTextCtrl(panel , -1,_T("500") ); - + //DFCH -- BarSlices + int min = 0; + int max = 100; + _mBarSlices = new mBarRange( panel, 70, 65 ); + _mBarSlices->SetMin( 0 ); + _mBarSlices->SetStart( 0 ); + _mBarSlices->SetOrientation( true ); + _mBarSlices->setActiveStateTo( true ); + _mBarSlices->setVisibleLabels( true ); + _mBarSlices->setDeviceEndMargin( 10 ); + _mBarSlices->setDeviceBlitStart( 10, 10 ); + _mBarSlices->setIfWithActualDrawed( false ); + _mBarSlices->setRepresentedValues( min, max ); + _mBarSlices->SetStart( min ); + _mBarSlices->SetEnd( max ); + //DFCH -- End BarSlices wxString lst2D3D[2]; lst2D3D[0]=_T("2D"); @@ -70,6 +85,16 @@ wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent) Connect(btnCopy->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnCopy); Connect(btnUndo->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction)(void (wxPanel::*)(wxCommandEvent&)) &wxManualPaintPanel::OnUndo); + Connect(_mBarSlices->GetId(),wxEVT_TSBAR,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onBarrange ); +// Connect(modBarRange->GetId(),98765,(wxObjectEventFunction) (wxCommandEventFunction) &wxWidgetSliderMinMax::onActualChange_Bar ); + Connect(_mBarSlices->GetId(),wxEVT_TSBAR_ACTUAL,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onActualChange_Bar ); + Connect(_mBarSlices->GetId(),wxEVT_TSBAR_START,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onStartChange_Bar ); + Connect(_mBarSlices->GetId(),wxEVT_TSBAR_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onEndChange_Bar ); + Connect(_mBarSlices->GetId(),wxEVT_SELECTION_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onSelectionEnd ); + Connect(_mBarSlices->GetId(),wxEVT_TSBAR_MOVED,(wxObjectEventFunction) (wxCommandEventFunction) &wxManualPaintPanel::onMovedBar ); + + + wxFlexGridSizer *sizer1 = new wxFlexGridSizer(1); sizer1->Add(new wxStaticText(panel,-1,_T(" "))); @@ -78,10 +103,14 @@ wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent) sizer1->Add(new wxStaticText(panel,-1,_T(" "))); sizer1->Add(_rbBrushTool, 1, wxGROW ); - sizer1->Add(new wxStaticText(panel,-1,_T(" "))); - sizer1->Add(txtGrayLevel); + wxFlexGridSizer *sizerGrayLevel = new wxFlexGridSizer(2); + sizerGrayLevel->Add(txtGrayLevel); + sizerGrayLevel->Add(_graylevelCtrl); + sizer1->Add(sizerGrayLevel, 1, wxGROW); sizer1->Add(_sldGrayLevel, 1, wxGROW ); - sizer1->Add(_graylevelCtrl); + + sizer1->Add( new wxStaticText( this, -1, _T( "Selected Range" ) ), 1, wxGROW ); + sizer1->Add( _mBarSlices, 1, wxGROW ); sizer1->Add(new wxStaticText(panel,-1,_T(" "))); sizer1->Add(_rb2D3D, 1, wxGROW ); @@ -94,16 +123,17 @@ wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent) sizer1->Add(new wxStaticText(panel,-1,_T(" "))); sizer1->Add(_rbBrushForm, 1, wxGROW ); - - sizer1->Add(new wxStaticText(panel,-1,_T(" "))); - sizer1->Add(_txtToleranceFill); + wxFlexGridSizer *sizerTolerance = new wxFlexGridSizer(2); + sizerTolerance->Add(_txtToleranceFill); + sizerTolerance->Add(_tolerancefillCtrl); + sizer1->Add( sizerTolerance ); sizer1->Add(_sldToleranceFill, 1, wxGROW ); - sizer1->Add(_tolerancefillCtrl); - sizer1->Add(new wxStaticText(panel,-1,_T(" "))); - sizer1->Add(_txtDistanceFill); + wxFlexGridSizer *sizerDistance = new wxFlexGridSizer(2); + sizerDistance->Add(_txtDistanceFill); + sizerDistance->Add(_distancefillCtrl); + sizer1->Add( sizerDistance ); sizer1->Add(_sldDistanceFill, 1, wxGROW ); - sizer1->Add(_distancefillCtrl); sizer1->Add(new wxStaticText(panel,-1,_T(" "))); @@ -255,3 +285,44 @@ void wxManualPaintPanel::OnCopy(wxCommandEvent &event) void wxManualPaintPanel::OnUndo(wxCommandEvent &event) { } + +//-------------------------------------------------------------------------------------------------------------------------------- +// Min-Max Barrange received events +//-------------------------------------------------------------------------------------------------------------------------------- +void wxManualPaintPanel :: onBarrange(wxCommandEvent& event) +{ +} +void wxManualPaintPanel :: onActualChange_Bar(wxCommandEvent& event) +{ + /*mbbtkSliderMinMax->bbSetOutputOutActual(modBarRange->GetActual()); + mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutActual"));*/ +} +void wxManualPaintPanel :: onStartChange_Bar(wxCommandEvent& event) +{ + SetRangeMax( _mBarSlices->GetStart() ); + /*mbbtkSliderMinMax->bbSetOutputOutStart(modBarRange->GetStart()); + mbbtkSliderMinMax->bbSetInputInMinShow(modBarRange->GetStart()); + mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutStart"));*/ +} + +void wxManualPaintPanel :: onEndChange_Bar(wxCommandEvent& event) +{ + SetRangeMax( _mBarSlices->GetEnd() ); + /*mbbtkSliderMinMax->bbSetOutputOutEnd(modBarRange->GetEnd()); + mbbtkSliderMinMax->bbSignalOutputModification(std::string("OutEnd"));*/ +} + +void wxManualPaintPanel :: onSelectionEnd(wxCommandEvent& event) +{ +} + +void wxManualPaintPanel :: onMovedBar(wxCommandEvent& event) +{ +} + //-------------------------------------------------------------------------- + //------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- + + + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h index 1bf342e..4a2afc7 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h @@ -2,6 +2,10 @@ #define _WX_MANUAL_PAINT_PANEL_H_ #include "ManualPaintPanel.h" + +#include "mBarRange.h" //DFCH +#include "creaWx.h" //DFCH + #include #include @@ -22,6 +26,16 @@ public: void OnCtrTxtToleranceFill(wxCommandEvent &event); void OnSldDistanceFill(wxScrollEvent& event); void OnCtrTxtDistanceFill(wxCommandEvent &event); + //This method changes the min/max in the Selected Range Widget + //-------------------------------------------------------------------------------------------------------------------------------- + // Min-Max Barrange received events + //-------------------------------------------------------------------------------------------------------------------------------- + void onBarrange(wxCommandEvent& event); + void onActualChange_Bar(wxCommandEvent& event); + void onStartChange_Bar(wxCommandEvent& event); + void onEndChange_Bar(wxCommandEvent& event); + void onSelectionEnd(wxCommandEvent& event); + void onMovedBar(wxCommandEvent& event); private: wxStaticText *_txtBrushSize; @@ -41,6 +55,8 @@ private: wxSlider *_sldDistanceFill; wxTextCtrl *_distancefillCtrl; + mBarRange * _mBarSlices; //DFCH + -- 2.45.1