wxMaracasImageBrowser02 Class Reference

Panel class that show thumbnails images. More...

#include <wxMaracasImageBrowser02.h>

Collaboration diagram for wxMaracasImageBrowser02:
Collaboration graph
[legend]

List of all members.

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

Detailed Description

Panel class that show thumbnails images.

Definition at line 55 of file wxMaracasImageBrowser02.h.


Constructor & Destructor Documentation

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 }

Here is the call graph for this function:

wxMaracasImageBrowser02::~wxMaracasImageBrowser02 (  ) 

Definition at line 91 of file wxMaracasImageBrowser02.cxx.

References _imageviewer2D_1.

00092 {
00093   delete _imageviewer2D_1;
00094 }


Member Function Documentation

wxMaracasImageBrowser02::DECLARE_EVENT_TABLE (  )  [private]
void wxMaracasImageBrowser02::ForceToFinisReadActiveImages (  ) 

Definition at line 225 of file wxMaracasImageBrowser02.cxx.

References _loadRangeImage, and LoadRangeImage::ForceToFinisReadActiveImages().

Referenced by OnBtSaveVOIData().

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxMaracasImageBrowser02::OnRefreshView ( wxCommandEvent &  event  ) 

Definition at line 253 of file wxMaracasImageBrowser02.cxx.

References Refresh().

00254 {
00255         Refresh();
00256 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

void wxMaracasImageBrowser02::Start (  ) 

Definition at line 220 of file wxMaracasImageBrowser02.cxx.

References _loadRangeImage, and LoadRangeImage::Start().

00220                                     {
00221         _loadRangeImage->Start();
00222 }

Here is the call graph for this function:


Member Data Documentation

Definition at line 80 of file wxMaracasImageBrowser02.h.

Referenced by OnBtnResetRoi().

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().

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().


The documentation for this class was generated from the following files:

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1