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

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::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:

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:

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::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:

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::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::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::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::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:

wxMaracasImageBrowser02::DECLARE_EVENT_TABLE (  )  [private]


Member Data Documentation

wxButton* wxMaracasImageBrowser02::_btnRestRoi [private]

Definition at line 80 of file wxMaracasImageBrowser02.h.

Referenced by OnBtnResetRoi().

marParameters* wxMaracasImageBrowser02::_parameters [private]

Definition at line 82 of file wxMaracasImageBrowser02.h.

Referenced by OnBtSaveVOIData().

LoadRangeImage* wxMaracasImageBrowser02::_loadRangeImage [private]

Definition at line 83 of file wxMaracasImageBrowser02.h.

Referenced by ForceToFinisReadActiveImages(), GetROI(), OnBtnResetRoi(), OnRefreshView2(), Refresh(), SetROI(), and Start().

vtkBaseData* wxMaracasImageBrowser02::_vtkbasedata_1 [private]

Definition at line 85 of file wxMaracasImageBrowser02.h.

Referenced by GetROI(), LoadData(), OnBtnResetRoi(), OnBtSaveVOIData(), OnRefreshView2(), and Refresh().

wxVtk2DBaseView* wxMaracasImageBrowser02::_imageviewer2D_1 [private]

Definition at line 86 of file wxMaracasImageBrowser02.h.

Referenced by LoadData(), OnBtnResetRoi(), OnRefreshView2(), and ~wxMaracasImageBrowser02().

manualRoiControler* wxMaracasImageBrowser02::_manRoiControl [private]

Definition at line 88 of file wxMaracasImageBrowser02.h.

Referenced by LoadData(), OnBtnResetRoi(), and SetROI().

manualContourModel* wxMaracasImageBrowser02::_mContourModel [private]

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


The documentation for this class was generated from the following files:
Generated on Wed Jul 29 16:36:20 2009 for creaMaracasVisu_lib by  doxygen 1.5.3