-
+
/**
- * \file
- * \brief ClassThresholdImageViewPanel .
+ * \file
+ * \brief ClassThresholdImageViewPanel .
*/
wxDialog* dial = new wxDialog (parent,-1,_T("Tools"),wxDefaultPosition, wxSize(590,190));
wxSizer* buttonsSizer = dial->CreateSeparatedButtonSizer(wxOK|wxCANCEL);
wxBoxSizer *dialSizer = new wxBoxSizer(wxVERTICAL);
-
+
wxString lstOptOperation[3];
lstOptOperation[0]=_T("By Dimension");
lstOptOperation[1]=_T("By Spacing");
lstOptOperation[2]=_T("By Pixel");
- wxRadioBox * radioOpts = new wxRadioBox(dial, -1, _T("Type of Transformation"), wxDefaultPosition, wxSize(270,45), 3 , lstOptOperation, 3, wxRA_SPECIFY_COLS);
-
+ wxRadioBox * radioOpts = new wxRadioBox(dial, -1, _T("Type of Transformation"), wxDefaultPosition, wxSize(270,45), 3 , lstOptOperation, 3, wxRA_SPECIFY_COLS);
+
dialSizer->Add( new wxStaticText(dial,-1,message) , 0, wxGROW );
- // dialSizer->Add( new wxStaticText(dial,-1,_T("selected Roi file. Do you want to tranform it?")) , 0, wxGROW );
- dialSizer->Add( new wxStaticText(dial,-1,_T(" ")) , 0, wxGROW );
+ // dialSizer->Add( new wxStaticText(dial,-1,_T("selected Roi file. Do you want to tranform it?")) , 0, wxGROW );
+ dialSizer->Add( new wxStaticText(dial,-1,_T(" ")) , 0, wxGROW );
dialSizer->Add(radioOpts,0,wxGROW);
- dialSizer->Add( new wxStaticText(dial,-1,_T(" ")) , 0, wxGROW );
+ dialSizer->Add( new wxStaticText(dial,-1,_T(" ")) , 0, wxGROW );
dialSizer->Add(buttonsSizer,0,wxGROW);
dial->SetSizer(dialSizer, true);
dial->Layout();
dial->ShowModal();
-
+
typeOfTransformation = -1;
dlgWxOK = false;
-
+
if (dial->GetReturnCode() == wxID_OK)
{
typeOfTransformation = radioOpts->GetSelection();
_sl_SliceImage->Enable(false);
_interpolationCheckBox = new wxCheckBox(this, -1, _T("Image interpolation") );
- _interpolationCheckBox->SetValue(true);
+ _interpolationCheckBox->SetValue(true);
_opacity = new wxSlider(this, wxID_ANY, 6, 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator);
-
+
if (type==0)
{
}
-
+
if (type==1)
{
}
-
-
- Connect( _btn_ReadImage->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &ColorLayerImageViewPanel::onReadImage );
- Connect( _cb_ShowHide->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &ColorLayerImageViewPanel::onThresholdShow );
+
+
+ Connect( _btn_ReadImage->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &ColorLayerImageViewPanel::onReadImage );
+ 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 );
_colorLayerImageView = colorLayerImageView;
}
+//----------------------------------------------------------------------------
+ColorLayerImageView* ColorLayerImageViewPanel::GetColorLayerImageView()
+{
+ return _colorLayerImageView;
+}
+
+
// This is the new spacing of the background image (1,1,1)
void ColorLayerImageViewPanel::SetBaseSpacing(double spc[3])
{
_spcBase[0] = spc[0];
_spcBase[1] = spc[1];
_spcBase[2] = spc[2];
-
+
_spcBase[0] = 1;
_spcBase[1] = 1;
_spcBase[2] = 1;
void ColorLayerImageViewPanel::onReadImage(wxCommandEvent& event)
{
// EED ???
-// creaImageIO::WxSimpleDlg w(0,_T("Select your image"),"creaContours_Descriptor.dscp","creatisContours DB");
-// w.ShowModal();
+// creaImageIO::WxSimpleDlg w(0,_T("Select your image"),"creaContours_Descriptor.dscp","creatisContours DB");
+// w.ShowModal();
printf("EED ColorLayerImageViewPanel::onReadImage ....WARNING... Read dlg. all images creaImageIO ... ???\n");
creaMaracasVisuKernel::OpenImageDialog diag = creaMaracasVisuKernel::OpenImageDialog();
double spc[3];
diag.getImageData()->GetSpacing(spc);
-
+
int dim[3];
int ext[6];
diag.getImageData()->GetWholeExtent(ext);
dim[1] = ext[3]-ext[2];
dim[2] = ext[5]-ext[4];
_sl_SliceImage->SetRange( 0 , dim[2] );
-
- if ( (spc[0]!=_spcBase[0]) || (spc[1]!=_spcBase[1]) || (spc[2]!=_spcBase[2]) ||
- (dim[0]!=_dimBase[0]) || (spc[1]!=_spcBase[1]) || (spc[2]!=_spcBase[2])
+
+ if ( (spc[0]!=_spcBase[0]) || (spc[1]!=_spcBase[1]) || (spc[2]!=_spcBase[2]) ||
+ (dim[0]!=_dimBase[0]) || (spc[1]!=_spcBase[1]) || (spc[2]!=_spcBase[2])
)
{
-
+
bool transformOkDlg;
int typeOfTransformation;
wxString msg = _T("The image resolution of both images are not compatible. Do you want to tranform it? ");
wxDlgTransformByDimensionBySpacingByPixel dlg;
dlg.GetTransformType(this,msg,typeOfTransformation,transformOkDlg);
-
+
printf("EED ColorLayerImageViewPanel::onReadImage call dialog spc size,dim...???\n");
-
- if (typeOfTransformation==0) // make dimensions equals
+
+ if (typeOfTransformation==0) // make dimensions equals
{
printf("EED ColorLayerImageViewPanel::onReadImage ...WARNNING.... dif size image spc*dim ofnew image ...???\n");
spc[0]=_spcBase[0]*_dimBase[0]/dim[0];
spc[1]=_spcBase[1]*_dimBase[1]/dim[1];
spc[2] = 1;
}
-
+
if (typeOfTransformation==1) // make spacing equals
{
spc[0] = ( _spcBase[0]/spc[0] ) * _spcOrg[0];
spc[1] = ( _spcBase[1]/spc[1] ) * _spcOrg[1];
spc[2] = ( _spcBase[2]/spc[2] ) * _spcOrg[2];
}
-
+
if (typeOfTransformation==2) // make spacing = 1
{
spc[0] = 1;
spc[1] = 1;
spc[2] = 1;
}
-
+
diag.getImageData()->SetSpacing(spc);
} // spc !_spcBase dim!__dimBase
-
- _colorLayerImageView->onThreshold();
- _colorLayerImageView->GetwxVtkBaseView()->Refresh();
+
+ if (_colorLayerImageView!=NULL)
+ {
+ _colorLayerImageView->onThreshold();
+ _colorLayerImageView->Refresh();
+ }
}
//----------------------------------------------------------------------------
void ColorLayerImageViewPanel::onThresholdChange(wxCommandEvent& event)
{
- if (_thresholdGo)
+ if (_colorLayerImageView!=NULL)
{
- _colorLayerImageView->onThresholdChange();
- _colorLayerImageView->GetwxVtkBaseView()->Refresh();
- //std::cout<< "Valor Min: " << minVal << " & Valor Max: " << maxVal << std::endl;
- }
+ if (_thresholdGo)
+ {
+ _colorLayerImageView->onThresholdChange();
+ _colorLayerImageView->Refresh();
+ //std::cout<< "Valor Min: " << minVal << " & Valor Max: " << maxVal << std::endl;
+ } // _threshold
+ }//_colorLayerImageView
}
//----------------------------------------------------------------------------
void ColorLayerImageViewPanel::onThresholdShow(wxCommandEvent& event)
{
- _thresholdGo = _cb_ShowHide->GetValue();
- if (_thresholdGo)
+ if (_colorLayerImageView!=NULL)
{
- _colorLayerImageView->onThreshold();
- }
- else
- {
- _colorLayerImageView->onThresholdRemove( );
- }
- _colorLayerImageView->GetwxVtkBaseView()->Refresh();
+ _thresholdGo = _cb_ShowHide->GetValue();
+ if (_thresholdGo)
+ {
+ _colorLayerImageView->onThreshold();
+ }else{
+ _colorLayerImageView->onThresholdRemove( );
+ }
+ _colorLayerImageView->Refresh();
+ }//_colorLayerImageView
}
//----------------------------------------------------------------------------
void ColorLayerImageViewPanel::onThresholdStop()
{
- if (_thresholdGo)
- {
- _colorLayerImageView->onThresholdRemove( );
- _thresholdGo=false;
- }
+ if (_colorLayerImageView!=NULL)
+ {
+ if (_thresholdGo)
+ {
+ _colorLayerImageView->onThresholdRemove( );
+ _thresholdGo=false;
+ }
+ }//_colorLayerImageView
}
//----------------------------------------------------------------------------
void ColorLayerImageViewPanel::onThresholdInterpolation(wxCommandEvent& event)
{
- _colorLayerImageView->onThresholdInterpolation(_interpolationCheckBox->GetValue());
- _colorLayerImageView->GetwxVtkBaseView()->Refresh();
-
+ if (_colorLayerImageView!=NULL)
+ {
+ _colorLayerImageView->onThresholdInterpolation(_interpolationCheckBox->GetValue());
+ _colorLayerImageView->Refresh();
+ }//_colorLayerImageView
}
//----------------------------------------------------------------------------
void ColorLayerImageViewPanel::onSliceFixDinamic(wxCommandEvent& event)
{
- bool fixdin = _cb_SliceFixDinamic->GetValue();
- _colorLayerImageView->SetSliceFixDinamic( fixdin );
- if (fixdin==false)
+ if (_colorLayerImageView!=NULL)
{
- _colorLayerImageView->SetZ2( _sl_SliceImage->GetValue() );
- }
- _sl_SliceImage->Enable(!fixdin);
- _colorLayerImageView->onThreshold();
- _colorLayerImageView->GetwxVtkBaseView()->Refresh();
+ bool fixdin = _cb_SliceFixDinamic->GetValue();
+ _colorLayerImageView->SetSliceFixDinamic( fixdin );
+ if (fixdin==false)
+ {
+ _colorLayerImageView->SetZ2( _sl_SliceImage->GetValue() );
+ }
+ _sl_SliceImage->Enable(!fixdin);
+ _colorLayerImageView->onThreshold();
+ _colorLayerImageView->Refresh();
+ }//_colorLayerImageView
}
//----------------------------------------------------------------------------
void ColorLayerImageViewPanel::onSliceImage(wxScrollEvent& event)
{
- _colorLayerImageView->SetZ2( _sl_SliceImage->GetValue() );
- _colorLayerImageView->onThreshold();
- _colorLayerImageView->GetwxVtkBaseView()->Refresh();
+ if (_colorLayerImageView!=NULL)
+ {
+ _colorLayerImageView->SetZ2( _sl_SliceImage->GetValue() );
+ _colorLayerImageView->onThreshold();
+ _colorLayerImageView->Refresh();
+ }//_colorLayerImageView
}
//----------------------------------------------------------------------------
void ColorLayerImageViewPanel::onChangeOpacity(wxScrollEvent& event)
{
- int opacity = _opacity->GetValue();
- _colorLayerImageView->onThresholdChangeOpacity(opacity);
- _colorLayerImageView->GetwxVtkBaseView()->Refresh();
+ if (_colorLayerImageView!=NULL)
+ {
+ int opacity = _opacity->GetValue();
+ _colorLayerImageView->onThresholdChangeOpacity(opacity);
+ _colorLayerImageView->Refresh();
+ }//_colorLayerImageView
}