X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FThresholdImageView%2FColorLayerImageViewPanel.cxx;h=b7495217b91066e559d7bcac9c55366a34e42091;hb=e263b7ace0f53d647a731553a3f67700838ad146;hp=e6b81ed42d980f173bfb7f15aaaf9c7daf8cd4ba;hpb=0780b53e8b105636030b2c9fcbbc423d8ed48c30;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.cxx index e6b81ed..b749521 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.cxx @@ -122,7 +122,7 @@ printf("EED wxDlgTransformByDimensionBySpacingByPixel::GetTransformType BBB %d\n /** ** Begin of the threshold panel **/ -ColorLayerImageViewPanel::ColorLayerImageViewPanel(wxWindow* parent, int min, int max, int type) +ColorLayerImageViewPanel::ColorLayerImageViewPanel(wxWindow* parent, int min, int max,int opacity, int type) //: wxPanel(parent, -1, wxDefaultPosition, wxSize(600,100), wxBORDER_SUNKEN) : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) @@ -163,7 +163,7 @@ ColorLayerImageViewPanel::ColorLayerImageViewPanel(wxWindow* parent, int min, in _sl_SliceImageZ->Enable(false); _interpolationCheckBox = new wxCheckBox(this, -1, _T("Interpole") ); _interpolationCheckBox->SetValue(true); - _opacity = new wxSlider(this, wxID_ANY, 6, 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); + _opacity = new wxSlider(this, wxID_ANY, opacity, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); // _histogram = new Histogram( this , -1, wxPoint(0,0), wxSize(400,400), /*wxNO_BORDER*/ wxBORDER_DEFAULT ); // _histogramMinMaxLevel = new HistogramMinMaxLevel( (HistogramBase*)_histogram ); @@ -218,7 +218,7 @@ ColorLayerImageViewPanel::ColorLayerImageViewPanel(wxWindow* parent, int min, in sizer = new wxFlexGridSizer(2); _interpolationCheckBox = new wxCheckBox(this, -1, _T("Interpolate") ); _interpolationCheckBox->SetValue(true); - _opacity = new wxSlider(this, wxID_ANY, 6, 0, 10, wxDefaultPosition, wxSize(2,40), wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); + _opacity = new wxSlider(this, wxID_ANY, opacity, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); Connect( _interpolationCheckBox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &ColorLayerImageViewPanel::onThresholdInterpolation ); Connect( _opacity->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction) &ColorLayerImageViewPanel::onChangeOpacity ); @@ -278,15 +278,6 @@ void ColorLayerImageViewPanel::SetImage(vtkImageData *img) GetColorLayerImageViewManager()->GetSpcBase(0,spcBase); GetColorLayerImageViewManager()->GetDimensionBase(0,dimensionBase); -/* - int dim[3]; - int ext[6]; - img->GetWholeExtent(ext); - dim[0] = ext[1]-ext[0]+1; - dim[1] = ext[3]-ext[2]+1; - dim[2] = ext[5]-ext[4]+1; -*/ - if (_sl_SliceImageX!=NULL) { _sl_SliceImageX->SetRange( 0 , dimensionOriginalLayer[0] ); @@ -294,31 +285,6 @@ void ColorLayerImageViewPanel::SetImage(vtkImageData *img) _sl_SliceImageZ->SetRange( 0 , dimensionOriginalLayer[2] ); } -/* -printf("EED ColorLayerImageViewPanel::SetImage UUPPSS----------------------\n" ); -printf("EED ColorLayerImageViewPanel::SetImage UUPPSS----------------------\n" ); -printf("EED ColorLayerImageViewPanel::SetImage UUPPSS----------------------\n" ); -printf("EED ColorLayerImageViewPanel::SetImage UUPPSS----------------------\n" ); -printf(" Here I have to analyse the spacing and size image to calculate new spacingvv\n" ); -printf(" I need the caracteristics of the base image\n" ); - - wxVtkBaseView *wxvtkbaseview = GetColorLayerImageViewManager()->GetwxVtkBaseView(0); - if (wxvtkbaseview!=NULL) - { - vtkImageData *imagebase = wxvtkbaseview->GetVtkBaseData()->GetImageData(); - if (imagebase!=NULL) - { - imagebase->GetSpacing(_spcBase); - int ext[6]; - imagebase->GetWholeExtent(ext); - _dimBase[0]=ext[1]-ext[0]+1; - _dimBase[1]=ext[3]-ext[2]+1; - _dimBase[2]=ext[5]-ext[4]+1; - } // if imagebase - } // if wxvtkbaseview - -*/ - if ( (spcOriginalLayer[0]!=spcBase[0]) || (spcOriginalLayer[1]!=spcBase[1]) || @@ -349,16 +315,13 @@ printf(" I need the caracteristics of the base image\n" ); //EO CM if (typeOfTransformation==1) // Adapt spacing { -printf("EED ColorLayerImageViewPanel::SetImag 1 \n"); newSpc[0] = spcBase[0] * dimensionBase[0] / dimensionOriginalLayer[0]; newSpc[1] = spcBase[1] * dimensionBase[1] / dimensionOriginalLayer[1]; newSpc[2] = spcBase[2] * dimensionBase[2] / dimensionOriginalLayer[2]; -printf("EED ColorLayerImageViewPanel::SetImag 1 newSpc=%f %f %f \n", newSpc[0],newSpc[1],newSpc[2] ); } if (typeOfTransformation==2) // keep spacing of the Layer Image { -printf("EED ColorLayerImageViewPanel::SetImag 2 \n"); newSpc[0] = spcOriginalLayer[0]; newSpc[1] = spcOriginalLayer[1]; newSpc[2] = spcOriginalLayer[2]; @@ -366,22 +329,19 @@ printf("EED ColorLayerImageViewPanel::SetImag 2 \n"); if (typeOfTransformation==3) // Use the spacing of the Base Image { -printf("EED ColorLayerImageViewPanel::SetImag 3 \n"); newSpc[0] = spcBase[0]; newSpc[1] = spcBase[1]; newSpc[2] = spcBase[2]; -// spc[0] = 1; -// spc[1] = 1; -// spc[2] = 1; } - - GetColorLayerImageViewManager()->SetNewSpacingLayer(newSpc); + } else { + newSpc[0] = spcOriginalLayer[0]; + newSpc[1] = spcOriginalLayer[1]; + newSpc[2] = spcOriginalLayer[2]; + } // spc !_spcBase dim!__dimBase + + GetColorLayerImageViewManager()->SetNewSpacingLayer(newSpc); -// img->SetSpacing(newSpc); -// img->Update(); -// img->Modified(); - } // spc !_spcBase dim!__dimBase } // _firsttime_mode if (_active==true) @@ -502,13 +462,22 @@ void ColorLayerImageViewPanel::onSliceImage(wxScrollEvent& event) } //---------------------------------------------------------------------------- -void ColorLayerImageViewPanel::onChangeOpacity(wxScrollEvent& event) +void ColorLayerImageViewPanel::ChangeOpacity() { int opacity = _opacity->GetValue(); _colorLayerImageViewManager->onThresholdChangeOpacity(opacity); RefreshView(); } +//---------------------------------------------------------------------------- +void ColorLayerImageViewPanel::onChangeOpacity(wxScrollEvent& event) +{ + ChangeOpacity(); +// int opacity = _opacity->GetValue(); +// _colorLayerImageViewManager->onThresholdChangeOpacity(opacity); +// RefreshView(); +} + //---------------------------------------------------------------------------- bool ColorLayerImageViewPanel::IsVisible()