Panel class that show thumbnails images. More...
#include <wxMaracasImageBrowser02.h>
Public Member Functions | |
wxMaracasImageBrowser02 (wxWindow *parent, marFilesBase *dicom, marParameters *parameters) | |
~wxMaracasImageBrowser02 () | |
void | LoadData (marImageData *marimagedata) |
void | GetROI (int ext[6]) |
void | SetROI (int voi[6]) |
bool | GetRoiSelected () |
void | Start () |
void | ForceToFinisReadActiveImages () |
void | Refresh () |
void | OnRefreshView (wxCommandEvent &event) |
void | OnRefreshView2 (wxCommandEvent &event) |
void | OnBtnResetRoi (wxCommandEvent &event) |
void | OnBtSaveVOIData (wxCommandEvent &event) |
void | OnBtnCutVolume (wxCommandEvent &event) |
Private Member Functions | |
DECLARE_EVENT_TABLE () | |
Private Attributes | |
wxButton * | _btnRestRoi |
marParameters * | _parameters |
LoadRangeImage * | _loadRangeImage |
vtkBaseData * | _vtkbasedata_1 |
wxVtk2DBaseView * | _imageviewer2D_1 |
manualRoiControler * | _manRoiControl |
manualContourModel * | _mContourModel |
manualViewRoi * | _mViewRoi |
Panel class that show thumbnails images.
Definition at line 55 of file wxMaracasImageBrowser02.h.
wxMaracasImageBrowser02::wxMaracasImageBrowser02 | ( | wxWindow * | parent, | |
marFilesBase * | dicom, | |||
marParameters * | parameters | |||
) |
Definition at line 37 of file wxMaracasImageBrowser02.cxx.
References OnBtnCutVolume(), OnBtnResetRoi(), and OnBtSaveVOIData().
00038 : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ){ 00039 00040 this->SetSize(100,100); 00041 00042 //parent->GetToolBar()->EnableTool(ID_TOOLBAR_3D_BROWSER, _view_image->_bboxEnabled); 00043 _parameters = parameters; 00044 00045 wxPanel *panel1=new wxPanel(this,-1); 00046 _btnRestRoi = new wxButton (panel1,-1,_T("Set VOI"),wxDefaultPosition ,wxSize(100,80) ); 00047 _loadRangeImage = new LoadRangeImage(panel1,dicom); 00048 _loadRangeImage->SetSize(100,100); 00049 wxButton *bt_SavePerpSlice = new wxButton(panel1,-1,_T("Save VOI image")); 00050 wxButton *bt_CutVolume = new wxButton(panel1,-1,_T("Cut Volume")); 00051 Connect(bt_SavePerpSlice->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxMaracasImageBrowser02::OnBtSaveVOIData ); 00052 Connect(bt_CutVolume->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxMaracasImageBrowser02::OnBtnCutVolume ); 00053 Connect(_btnRestRoi->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) (wxCommandEventFunction) &wxMaracasImageBrowser02::OnBtnResetRoi ); 00054 00055 00056 wxPanel *panel2=new wxPanel(this,-1); 00057 _imageviewer2D_1 = new wxVtk2DBaseView(panel2); 00058 wxVTKRenderWindowInteractor *iren = _imageviewer2D_1->GetWxVTKRenderWindowInteractor(); 00059 wxBoxSizer *sizerDown= new wxBoxSizer(wxVERTICAL); 00060 sizerDown->Add( iren , 1, wxEXPAND , 0 ); 00061 panel2->SetSizer( sizerDown ); 00062 panel2->SetAutoLayout( true ); 00063 panel2->SetSize( 100,100 ); 00064 panel2->Layout(); 00065 00066 00067 00068 // wxBoxSizer *sizer1= new wxBoxSizer(wxHORIZONTAL); 00069 wxFlexGridSizer *sizer1= new wxFlexGridSizer(10); 00070 panel1->SetSizer( sizer1 ); 00071 sizer1->AddGrowableCol(1); 00072 sizer1->Add( _btnRestRoi ); 00073 sizer1->Add( _loadRangeImage,1,wxEXPAND,0 ); 00074 sizer1->Add( bt_SavePerpSlice); 00075 sizer1->Add( bt_CutVolume); 00076 00077 00078 wxFlexGridSizer *sizer= new wxFlexGridSizer(1); 00079 sizer->AddGrowableCol(0); 00080 sizer->AddGrowableRow(1); 00081 00082 00083 sizer->Add( panel1 ,1,wxEXPAND,0 ); 00084 sizer->Add( panel2 , 1, wxGROW , 0 ); 00085 00086 this->SetSizer( sizer ); 00087 this->SetAutoLayout( true ); 00088 this->Layout(); 00089 }
wxMaracasImageBrowser02::~wxMaracasImageBrowser02 | ( | ) |
Definition at line 91 of file wxMaracasImageBrowser02.cxx.
References _imageviewer2D_1.
00092 { 00093 delete _imageviewer2D_1; 00094 }
wxMaracasImageBrowser02::DECLARE_EVENT_TABLE | ( | ) | [private] |
void wxMaracasImageBrowser02::ForceToFinisReadActiveImages | ( | ) |
Definition at line 225 of file wxMaracasImageBrowser02.cxx.
References _loadRangeImage, and LoadRangeImage::ForceToFinisReadActiveImages().
Referenced by OnBtSaveVOIData().
00225 { 00226 _loadRangeImage->ForceToFinisReadActiveImages(); 00227 }
void wxMaracasImageBrowser02::GetROI | ( | int | ext[6] | ) |
Definition at line 185 of file wxMaracasImageBrowser02.cxx.
References _loadRangeImage, _mViewRoi, _vtkbasedata_1, vtkBaseData::GetImageData(), manualViewRoi::GetMinMax(), and LoadRangeImage::GetROI().
Referenced by OnBtSaveVOIData().
00186 { 00187 double minX,minY,maxX,maxY; 00188 _mViewRoi->GetMinMax(minX,minY,maxX,maxY); 00189 ext[0]=(int)minX; 00190 ext[1]=(int)maxX; 00191 ext[2]=(int)minY; 00192 ext[3]=(int)maxY; 00193 00194 00195 00196 // EED 27 sep 206 00197 // double spacing[3]; 00198 // _vtkbasedata_1->GetImageData ()->GetSpacing( spacing ); 00199 // ext[0] /= spacing[0]; 00200 // ext[1] /= spacing[0]; 00201 // ext[2] /= spacing[1]; 00202 // ext[3] /= spacing[1]; 00203 00204 _loadRangeImage->GetROI( ext ); // ext[4..5] 00205 00206 if ( (ext[0]==ext[1]) || (ext[2]==ext[3]) || (ext[4]==ext[5]) ) 00207 { 00208 int border[6]; 00209 _vtkbasedata_1->GetImageData ()->GetExtent( border ); 00210 ext[0] = border[0]; 00211 ext[1] = border[1]; 00212 ext[2] = border[2]; 00213 ext[3] = border[3]; 00214 ext[4] = border[4]; 00215 ext[5] = border[5]; 00216 } 00217 00218 }
bool wxMaracasImageBrowser02::GetRoiSelected | ( | ) |
Definition at line 229 of file wxMaracasImageBrowser02.cxx.
References _mViewRoi, and manualViewRoi::GetMinMax().
00230 { 00231 double minX,minY,maxX,maxY; 00232 _mViewRoi->GetMinMax(minX,minY,maxX,maxY); 00233 00234 bool result=true; 00235 if ( (minX==maxX) || (minY==maxY) ) 00236 { 00237 result=false; 00238 } 00239 return result; 00240 }
void wxMaracasImageBrowser02::LoadData | ( | marImageData * | marimagedata | ) |
Definition at line 136 of file wxMaracasImageBrowser02.cxx.
References _imageviewer2D_1, _manRoiControl, _mContourModel, _mViewRoi, _vtkbasedata_1, wxVtk2DBaseView::Configure(), manualContourBaseControler::CreateNewManualContour(), marImageData::GetImageData(), wxVtkBaseView::GetInteractorStyleBaseView(), wxVtkBaseView::GetWxVTKRenderWindowInteractor(), manualViewRoi::RefreshContour(), wxVTKRenderWindowInteractor::Render(), InteractorStyleMaracas::SetActive(), vtkBaseData::SetMarImageData(), manualViewBaseContour::SetModel(), manualContourBaseControler::SetModelView(), manualViewBaseContour::SetRange(), manualViewBaseContour::SetSpacing(), manualContourBaseControler::SetState(), wxVtk2DBaseView::SetVtkBaseData(), and manualViewBaseContour::SetWxVtkBaseView().
00137 { 00138 vtkImageData *imagedata = marimagedata->GetImageData(); 00139 imagedata->UpdateInformation(); 00140 imagedata->SetUpdateExtent(imagedata->GetWholeExtent()); 00141 imagedata->Update(); 00142 00143 _vtkbasedata_1 = new vtkBaseData(); 00144 _vtkbasedata_1->SetMarImageData( marimagedata ); 00145 _imageviewer2D_1->SetVtkBaseData( _vtkbasedata_1 ); 00146 _imageviewer2D_1->Configure(true); 00147 00148 // vtkImageViewer2 *_imageViewer=_imageviewer2D_1->_imageViewer2XYZ->GetVtkImageViewer2(); 00149 00150 _manRoiControl = new manualRoiControler(); 00151 00152 //JSTG 25-02-08 ------------------------------------- 00153 //_mContourModel = new manualContourModel(); 00154 _mContourModel = new manualContourModelRoi(); 00155 //--------------------------------------------------- 00156 _mViewRoi = new manualViewRoi(); 00157 _mViewRoi->SetModel( _mContourModel ); 00158 _mViewRoi->SetWxVtkBaseView( _imageviewer2D_1 ); 00159 _mViewRoi->SetRange( (int)1.5 ); 00160 00161 00162 // EED 3 oct 2006 00163 double spc[3]; 00164 imagedata->GetSpacing(spc); 00165 _mViewRoi->SetSpacing(spc); 00166 00167 _manRoiControl->SetModelView( _mContourModel , _mViewRoi ); 00168 _imageviewer2D_1->GetInteractorStyleBaseView()->AddInteractorStyleMaracas( _manRoiControl ); 00169 _manRoiControl->CreateNewManualContour(); 00170 _manRoiControl->SetState(0); 00171 _manRoiControl->SetActive(false); 00172 _mViewRoi->RefreshContour(); 00173 00174 _imageviewer2D_1->GetWxVTKRenderWindowInteractor()->Render(); 00175 }
void wxMaracasImageBrowser02::OnBtnCutVolume | ( | wxCommandEvent & | event | ) |
Definition at line 97 of file wxMaracasImageBrowser02.cxx.
Referenced by wxMaracasImageBrowser02().
00098 { 00099 wxCommandEvent cevent( wxEVT_MARACASIMAGEBROWSERCUTIMAGE, GetId() ); 00100 cevent.SetEventObject( this ); 00101 GetEventHandler()->ProcessEvent( cevent ); 00102 }
void wxMaracasImageBrowser02::OnBtnResetRoi | ( | wxCommandEvent & | event | ) |
Definition at line 105 of file wxMaracasImageBrowser02.cxx.
References _btnRestRoi, _imageviewer2D_1, wxVtk2DBaseView::_imageViewer2XYZ, _loadRangeImage, _manRoiControl, _vtkbasedata_1, vtkBaseData::GetImageData(), vtkImageViewer2_XYZ::GetVtkImageViewer2(), manualRoiControler::InitRoi(), wxVtk2DBaseView::Refresh(), LoadRangeImage::Reset(), and InteractorStyleMaracas::SetActive().
Referenced by wxMaracasImageBrowser02().
00106 { 00107 if (_loadRangeImage!=NULL) {_loadRangeImage->Reset();} 00108 00109 vtkImageData *imagedata = _vtkbasedata_1->GetImageData(); 00110 int dim[3]; 00111 imagedata->GetDimensions(dim); 00112 00113 00114 vtkImageViewer2 *IV2= this->_imageviewer2D_1->_imageViewer2XYZ->GetVtkImageViewer2(); 00115 vtkCamera *camera = IV2->GetRenderer()->GetActiveCamera(); 00116 double pos[3]; 00117 camera->GetPosition(pos); 00118 00119 00120 // EED 27 sep 2006 00121 // double spc[3]; 00122 // imagedata->GetSpacing(spc); 00123 // _manRoiControl->InitRoi( dim[0]*spc[0] , dim[1]*spc[1] , 0.2 ); 00124 00125 _manRoiControl->InitRoi( dim[0] , dim[1] , 0.2); 00126 _manRoiControl->SetActive(true); 00127 00128 _btnRestRoi->SetLabel( _T("Reset VOI") ); 00129 00130 _imageviewer2D_1->Refresh(); 00131 00132 }
void wxMaracasImageBrowser02::OnBtSaveVOIData | ( | wxCommandEvent & | event | ) |
Definition at line 270 of file wxMaracasImageBrowser02.cxx.
References _parameters, _vtkbasedata_1, ForceToFinisReadActiveImages(), marImageData::GetImageData(), vtkBaseData::GetMarImageData(), marParameters::getRescaleIntercept(), marParameters::getRescaleSlope(), GetROI(), and marRAW2Files::saveVolume().
Referenced by wxMaracasImageBrowser02().
00271 { 00272 wxFileDialog dialog(this, _T("Choose a file"), _T(""), _T(""), _T("*.maracas"), wxSAVE ); 00273 if (dialog.ShowModal() == wxID_OK) 00274 { 00275 ForceToFinisReadActiveImages(); 00276 std::string directory = (const char *)(dialog.GetDirectory().mb_str()); 00277 std::string filename = (const char *)(dialog.GetFilename().mb_str()); 00278 float rescalaSlope = _parameters->getRescaleSlope(); 00279 float rescalaIntercept = _parameters->getRescaleIntercept(); 00280 vtkImageData *vtkimagedata = this->_vtkbasedata_1->GetMarImageData()->GetImageData(); 00281 int voi[6]; 00282 this->GetROI(voi); 00283 marRAW2Files marraw2; 00284 marraw2.saveVolume(directory,filename,vtkimagedata,voi,rescalaSlope,rescalaIntercept); 00285 } 00286 }
void wxMaracasImageBrowser02::OnRefreshView | ( | wxCommandEvent & | event | ) |
Definition at line 253 of file wxMaracasImageBrowser02.cxx.
References Refresh().
00254 { 00255 Refresh(); 00256 }
void wxMaracasImageBrowser02::OnRefreshView2 | ( | wxCommandEvent & | event | ) |
Definition at line 258 of file wxMaracasImageBrowser02.cxx.
References _imageviewer2D_1, _loadRangeImage, _vtkbasedata_1, LoadRangeImage::GetActualSlice(), wxVtk2DBaseView::Refresh(), and vtkBaseData::SetZ().
00259 { 00260 _loadRangeImage -> ResetActualSlice();//SIL// 00261 int z = _loadRangeImage->GetActualSlice(); 00262 _vtkbasedata_1->SetZ( z ); 00263 _imageviewer2D_1->Refresh(); 00264 }
void wxMaracasImageBrowser02::Refresh | ( | ) |
Definition at line 242 of file wxMaracasImageBrowser02.cxx.
References _loadRangeImage, _vtkbasedata_1, LoadRangeImage::GetActualSlice(), vtkBaseData::GetZ(), LoadRangeImage::RefreshSlice(), LoadRangeImage::SetActualSlice(), and vtkBaseData::SetZ().
Referenced by OnRefreshView().
00243 { 00244 int z = (int)_vtkbasedata_1->GetZ( ); 00245 _loadRangeImage->SetActualSlice( z ); 00246 _loadRangeImage->RefreshSlice(); 00247 z = _loadRangeImage->GetActualSlice( ); 00248 _vtkbasedata_1->SetZ( z ); 00249 00250 // _imageviewer2D_1->Refresh(); 00251 }
void wxMaracasImageBrowser02::SetROI | ( | int | voi[6] | ) |
Definition at line 177 of file wxMaracasImageBrowser02.cxx.
References _loadRangeImage, _manRoiControl, LoadRangeImage::Reset(), InteractorStyleMaracas::SetActive(), manualRoiControler::SetRoi(), and LoadRangeImage::SetStartEnd().
00178 { 00179 _loadRangeImage->Reset(); 00180 _loadRangeImage->SetStartEnd( voi[4],voi[5]); 00181 _manRoiControl->SetRoi( voi[0],voi[2], voi[1],voi[3] ); 00182 _manRoiControl->SetActive(true); 00183 }
void wxMaracasImageBrowser02::Start | ( | ) |
Definition at line 220 of file wxMaracasImageBrowser02.cxx.
References _loadRangeImage, and LoadRangeImage::Start().
00220 { 00221 _loadRangeImage->Start(); 00222 }
wxButton* wxMaracasImageBrowser02::_btnRestRoi [private] |
Definition at line 80 of file wxMaracasImageBrowser02.h.
Referenced by OnBtnResetRoi().
Definition at line 86 of file wxMaracasImageBrowser02.h.
Referenced by LoadData(), OnBtnResetRoi(), OnRefreshView2(), and ~wxMaracasImageBrowser02().
Definition at line 83 of file wxMaracasImageBrowser02.h.
Referenced by ForceToFinisReadActiveImages(), GetROI(), OnBtnResetRoi(), OnRefreshView2(), Refresh(), SetROI(), and Start().
Definition at line 88 of file wxMaracasImageBrowser02.h.
Referenced by LoadData(), OnBtnResetRoi(), and SetROI().
Definition at line 89 of file wxMaracasImageBrowser02.h.
Referenced by LoadData().
manualViewRoi* wxMaracasImageBrowser02::_mViewRoi [private] |
Definition at line 91 of file wxMaracasImageBrowser02.h.
Referenced by GetROI(), GetRoiSelected(), and LoadData().
Definition at line 82 of file wxMaracasImageBrowser02.h.
Referenced by OnBtSaveVOIData().
Definition at line 85 of file wxMaracasImageBrowser02.h.
Referenced by GetROI(), LoadData(), OnBtnResetRoi(), OnBtSaveVOIData(), OnRefreshView2(), and Refresh().