]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.cxx
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / ThresholdImageView / ColorLayerImageViewPanel.cxx
index 01244c3df3a96bcbee9809feb0c9aac5a9c661a7..6ea524f5efa7ea01efeb393227adbb93c8a5c9f8 100644 (file)
@@ -7,7 +7,7 @@
 
 
 #include "ColorLayerImageViewPanel.h"
-
+#include "OpenImageDialog.h"
 
 
 /**
@@ -24,7 +24,13 @@ ColorLayerImageViewPanel::ColorLayerImageViewPanel(wxWindow* parent, int min, in
        _thresholdGo = true;
        _cb_ShowHide = new wxCheckBox(this, wxID_ANY, _T("Show/Hide layer") );
        _cb_ShowHide->SetValue(_thresholdGo);
-       
+
+       _cb_SliceFixDinamic = new wxCheckBox(this, wxID_ANY, _T("Slice Fix/Dinamic") );
+       _cb_SliceFixDinamic->SetValue(true);
+
+       _sl_SliceImage = new wxSlider(this, wxID_ANY, 0, 1000, 1000, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
+       _sl_SliceImage->Enable(false);
+
        _interpolationCheckBox = new wxCheckBox(this, -1, _T("Image interpolation") );
        _interpolationCheckBox->SetValue(true); 
        _opacity = new wxSlider(this, wxID_ANY, 6, 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
@@ -42,7 +48,14 @@ ColorLayerImageViewPanel::ColorLayerImageViewPanel(wxWindow* parent, int min, in
        Connect( _cb_ShowHide->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &ColorLayerImageViewPanel::onThresholdShow ); 
        Connect( _interpolationCheckBox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &ColorLayerImageViewPanel::onThresholdInterpolation );
        Connect( _opacity->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction) &ColorLayerImageViewPanel::onChangeOpacity );
-       
+       Connect( _cb_SliceFixDinamic->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &ColorLayerImageViewPanel::onSliceFixDinamic );
+       Connect( _sl_SliceImage->GetId(), wxEVT_SCROLL_THUMBTRACK       , (wxObjectEventFunction) &ColorLayerImageViewPanel::onSliceImage );
+       Connect( _sl_SliceImage->GetId(), wxEVT_SCROLL_LINEUP           , (wxObjectEventFunction) &ColorLayerImageViewPanel::onSliceImage );
+       Connect( _sl_SliceImage->GetId(), wxEVT_SCROLL_LINEDOWN         , (wxObjectEventFunction) &ColorLayerImageViewPanel::onSliceImage );
+       Connect( _sl_SliceImage->GetId(), wxEVT_SCROLL_PAGEUP           , (wxObjectEventFunction) &ColorLayerImageViewPanel::onSliceImage );
+       Connect( _sl_SliceImage->GetId(), wxEVT_SCROLL_PAGEDOWN         , (wxObjectEventFunction) &ColorLayerImageViewPanel::onSliceImage );
+
+
        wxFlexGridSizer * sizer         = new wxFlexGridSizer(1);
        if (type==1)
        {
@@ -56,7 +69,12 @@ ColorLayerImageViewPanel::ColorLayerImageViewPanel(wxWindow* parent, int min, in
        sizer -> Add( _cb_ShowHide, 1, wxGROW );
        sizer -> Add( new wxStaticText(this,-1,_T(" "))  , 1, wxGROW );
        sizer -> Add( _interpolationCheckBox, 1, wxGROW );
-       
+
+       sizer -> Add( new wxStaticText(this,-1,_T(" "))  , 1, wxGROW );
+       sizer -> Add( new wxStaticText(this,-1,_T("Slice "))  , 1, wxGROW );
+       sizer -> Add( _sl_SliceImage, 1, wxGROW );
+       sizer -> Add( _cb_SliceFixDinamic, 1, wxGROW );
+
        this->SetSizer( sizer );
        this->SetAutoLayout( true );
        this->Layout();
@@ -77,7 +95,19 @@ void ColorLayerImageViewPanel::SetColorLayerImageView(ColorLayerImageView* color
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onReadImage(wxCommandEvent& event)
 {
-       printf("EED UPS.... ");
+// EED ???
+//      creaImageIO::WxSimpleDlg w(0,_T("Select your image"),"creaContours_Descriptor.dscp","creatisContours DB"); 
+//      w.ShowModal(); 
+
+       creaMaracasVisuKernel::OpenImageDialog diag = creaMaracasVisuKernel::OpenImageDialog();
+       _colorLayerImageView->SetImage( diag.getImageData() );
+
+       int ext[6];
+       diag.getImageData()->GetWholeExtent(ext);
+       _sl_SliceImage->SetRange( 0 , ext[5]-ext[4] );
+
+       _colorLayerImageView->onThreshold();
+       _colorLayerImageView->GetwxVtkBaseView()->Refresh();
 }
 
 
@@ -125,6 +155,28 @@ void ColorLayerImageViewPanel::onThresholdInterpolation(wxCommandEvent& event)
 
 }
 
+//----------------------------------------------------------------------------
+void ColorLayerImageViewPanel::onSliceFixDinamic(wxCommandEvent& event)
+{
+       bool fixdin = _cb_SliceFixDinamic->GetValue();
+       _colorLayerImageView->SetSliceFixDinamic( fixdin );
+       if (fixdin==false)
+       {
+               _colorLayerImageView->SetZ2( _sl_SliceImage->GetValue() );
+       }
+       _sl_SliceImage->Enable(!fixdin);
+       _colorLayerImageView->onThreshold();
+       _colorLayerImageView->GetwxVtkBaseView()->Refresh();
+}
+
+//----------------------------------------------------------------------------
+void ColorLayerImageViewPanel::onSliceImage(wxScrollEvent& event)
+{
+       _colorLayerImageView->SetZ2( _sl_SliceImage->GetValue() );
+       _colorLayerImageView->onThreshold();
+       _colorLayerImageView->GetwxVtkBaseView()->Refresh();
+}
+
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onChangeOpacity(wxScrollEvent& event)
 {