#include <wxVtkClipping3DViewVolCntrlPanel.h>
Public Member Functions | |
wxVtkClipping3DViewVolCntrlPanel (wxWindow *parent, wxVtkClipping3DView *_wxvtkclipping3Dview) | |
~wxVtkClipping3DViewVolCntrlPanel () | |
void | OnVisibleVolume (wxCommandEvent &event) |
void | OnVisibleBoxVolume (wxCommandEvent &event) |
virtual void | Refresh () |
void | OnBtnVolumeFunctions (wxCommandEvent &event) |
Private Attributes | |
wxVtkClipping3DView * | _wxvtkclipping3Dview |
Definition at line 7 of file wxVtkClipping3DViewVolCntrlPanel.h.
wxVtkClipping3DViewVolCntrlPanel::wxVtkClipping3DViewVolCntrlPanel | ( | wxWindow * | parent, | |
wxVtkClipping3DView * | _wxvtkclipping3Dview | |||
) |
Definition at line 14 of file wxVtkClipping3DViewVolCntrlPanel.cxx.
References _wxvtkclipping3Dview, OnBtnVolumeFunctions(), OnVisibleBoxVolume(), and OnVisibleVolume().
00015 : wxPanel(parent, -1) 00016 { 00017 wxPanel *panel = this; 00018 _wxvtkclipping3Dview = wxvtkclipping3Dview; 00019 00020 00021 wxCheckBox *ckVolum = new wxCheckBox(panel,-1,_T("Vol")); 00022 wxCheckBox *ckBoxVolume = new wxCheckBox(panel,-1,_T("Volume Box")); 00023 00024 wxButton *btnVolumeFunctions = new wxButton(panel,-1,_T("Read Volume Functions")); 00025 00026 Connect(btnVolumeFunctions->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxVtkClipping3DViewVolCntrlPanel::OnBtnVolumeFunctions ); 00027 00028 ckBoxVolume->SetValue(false); 00029 00030 Connect(ckVolum->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkClipping3DViewVolCntrlPanel::OnVisibleVolume ); 00031 Connect(ckBoxVolume->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED , (wxObjectEventFunction) &wxVtkClipping3DViewVolCntrlPanel::OnVisibleBoxVolume ); 00032 00033 wxFlexGridSizer *sizer = new wxFlexGridSizer(1); 00034 wxFlexGridSizer *sizerH0 = new wxFlexGridSizer(20); 00035 00036 sizerH0->Add( ckVolum , 1, wxALL|wxEXPAND, 0); 00037 sizerH0->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); 00038 sizerH0->Add( ckBoxVolume , 1, wxALL|wxEXPAND, 0); 00039 sizerH0->Add( new wxStaticText(panel, -1,_T(" ")) , 1, wxALL|wxEXPAND, 0); 00040 sizerH0->Add( btnVolumeFunctions , 1, wxALL|wxEXPAND, 0); 00041 00042 00043 sizer->Add( sizerH0 , 1, wxALL|wxEXPAND, 2); 00044 00045 panel->SetSize(300,60); 00046 panel->SetAutoLayout(true); 00047 panel->SetSizer(sizer); 00048 panel->Layout(); 00049 00050 panel->SetEventHandler((wxEvtHandler*)this); 00051 00052 }
wxVtkClipping3DViewVolCntrlPanel::~wxVtkClipping3DViewVolCntrlPanel | ( | ) |
Definition at line 54 of file wxVtkClipping3DViewVolCntrlPanel.cxx.
void wxVtkClipping3DViewVolCntrlPanel::OnBtnVolumeFunctions | ( | wxCommandEvent & | event | ) |
Definition at line 81 of file wxVtkClipping3DViewVolCntrlPanel.cxx.
References _wxvtkclipping3Dview, HistogramDialog::addColorPoint(), HistogramDialog::addPointToTransferenceFunction(), HistogramDialog::erasePointsTransferenceFunction(), vtkClipping3DDataViewer::GetBlueColorsOfColorTransferenceFVector(), vtkClipping3DDataViewer::GetColorTransferenceFunction(), HistogramDialog::getDataBarColorPoint(), vtkClipping3DDataViewer::GetGreenColorsOfColorTransferenceFVector(), vtkClipping3DDataViewer::GetGreyValueColorsOfColorTransferenceFVector(), vtkClipping3DDataViewer::GetGreyValuesTransferenceFVector(), vtkBaseData::GetImageData(), vtkClipping3DDataViewer::GetIntensityValuesTransferenceFVector(), vtkClipping3DDataViewer::GetRedColorsOfColorTransferenceFVector(), HistogramDialog::getRefreshed(), HistogramDialog::getSizeBarColor(), HistogramDialog::getSizeTransferenceFunction(), vtkClipping3DDataViewer::GetTransferencefunction(), HistogramDialog::getTransferenceFunctionPoint(), wxVtkClipping3DView::GetVtkClipping3DDataViewer(), vtkClipping3DDataViewer::GetVtkMPRBaseData(), wxVtkClipping3DView::GetWxvtk3Dbaseview(), wxVtkBaseView::GetWxVTKRenderWindowInteractor(), wxVtkClipping3DView::Refresh(), HistogramDialog::setCTF(), and HistogramDialog::setTF().
Referenced by wxVtkClipping3DViewVolCntrlPanel().
00082 { 00083 00084 int /*i=0,*/ xi,yi,r,g,b; // JPRx 00085 vtkColorTransferFunction* ctfun = this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetColorTransferenceFunction(); 00086 vtkPiecewiseFunction* tfun = this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetTransferencefunction(); 00087 std::vector<double>* gtf = this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetGreyValuesTransferenceFVector(); 00088 std::vector<double>* itf = this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetIntensityValuesTransferenceFVector(); 00089 std::vector<double>* greyctf = this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetGreyValueColorsOfColorTransferenceFVector(); 00090 std::vector<double>* rctf = this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetRedColorsOfColorTransferenceFVector(); 00091 std::vector<double>* gctf = this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetGreenColorsOfColorTransferenceFVector(); 00092 std::vector<double>* bctf = this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetBlueColorsOfColorTransferenceFVector(); 00093 vtkImageData *imagedata = this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetVtkMPRBaseData()->GetImageData(); 00094 00095 //use for update in the refresh 00096 /* 00097 vtkVolumeRayCastMapper* volumeMapper = this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetVolumeMapper(); 00098 vtkVolume* newvol =this->_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->GetVolumeActor(); 00099 */ 00100 00101 /* 00102 MMLR BORRAME 00103 wxFileDialog dialog(this, _T("Choose a file"), _T("c:/Maracas_configuration"),_T(""), _T("*.MarVolConf"), wxOPEN); 00104 if (dialog.ShowModal() == wxID_OK) 00105 { 00106 _wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->ReadVolumeFunctions( (char *)dialog.GetPath().c_str() ); 00107 00108 00109 } 00110 */ 00111 00112 HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Histogram Dialog"),imagedata,1); 00113 // 00114 // put in a method 00115 // 00116 int tfSize=gtf->size(); 00117 if(tfSize>0) 00118 { 00119 int i=0; 00120 hDlg->erasePointsTransferenceFunction(); 00121 while(i<tfSize) 00122 { 00123 double g=(*gtf)[i]; 00124 double in=(*itf)[i]; 00125 hDlg->addPointToTransferenceFunction(g,in*100); 00126 i++; 00127 } 00128 00129 } 00130 00131 int ctfSize=rctf->size(); 00132 if(ctfSize>0) 00133 { 00134 int i=0; 00135 while(i<ctfSize) 00136 { 00137 double gr=(*greyctf)[i]; 00138 double r=(*rctf)[i]; 00139 double g=(*gctf)[i]; 00140 double b=(*bctf)[i]; 00141 hDlg->addColorPoint(gr,(int)(r*255),(int)(g*255),(int)(b*255)); 00142 i++; 00143 } 00144 } 00145 //setting variables if the user wants to do refresh 00146 hDlg->setCTF(ctfun); 00147 hDlg->setTF(tfun); 00148 //hDlg->setClipping3DView(_wxvtkclipping3Dview); 00149 /* 00150 hDlg->setVolume(newvol); 00151 hDlg->setVolumeMapper(volumeMapper); 00152 */ 00153 // 00154 // when the user had changed the transference Function 00155 // 00156 if(hDlg->ShowModal()== wxID_OK ) 00157 { 00158 // -- vtkPiecewiseFunction -- 00159 tfun->RemoveAllPoints(); 00160 gtf->clear(); 00161 itf->clear(); 00162 00163 int nTFPoints=hDlg->getSizeTransferenceFunction(); 00164 int i=0; 00165 while(i<nTFPoints) 00166 { 00167 hDlg->getTransferenceFunctionPoint(i,xi,yi); 00168 tfun->AddPoint( xi , yi/100.0 ); 00169 gtf->push_back(xi); 00170 itf->push_back(yi/100.0); 00171 i++; 00172 } 00173 // -- vtkColorTransferFunction -- 00174 ctfun->RemoveAllPoints (); 00175 //clean colors 00176 rctf->clear(); 00177 gctf->clear(); 00178 bctf->clear(); 00179 greyctf->clear(); 00180 00181 int nCTFpoints=hDlg->getSizeBarColor(); 00182 i=0; 00183 while(i<nCTFpoints) 00184 { 00185 hDlg->getDataBarColorPoint(i,xi,r,g,b); 00186 ctfun->AddRGBPoint(xi,r/255.0,g/255.0,b/255.0 ); 00187 rctf->push_back(r/255.0); 00188 gctf->push_back(g/255.0); 00189 bctf->push_back(b/255.0); 00190 greyctf->push_back(xi); 00191 i++; 00192 } 00193 //--------------------------------- 00194 // Refreshing and sending the event 00195 //--------------------------------- 00196 //_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->ReadVolumeFunctions(); 00197 _wxvtkclipping3Dview->Refresh(); 00198 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh 00199 _wxvtkclipping3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); 00200 00201 /* 00202 volumeMapper->Update(); 00203 newvol->Update(); 00204 */ 00205 } else { 00206 if(hDlg->getRefreshed()) 00207 { 00208 int i=0,size; 00209 //--Transference Function---- 00210 tfun->RemoveAllPoints(); 00211 i=0; 00212 size=gtf->size(); 00213 for(i=0;i<size;i++) 00214 { 00215 double grey1=(*gtf)[i]; 00216 double in2=(*itf)[i]; 00217 tfun->AddPoint( grey1 , in2 ); 00218 } 00219 00220 // -- vtkColorTransferFunction -- 00221 ctfun->RemoveAllPoints (); 00222 00223 i=0; 00224 size=greyctf->size(); 00225 for(i=0;i<size;i++) 00226 { 00227 double grey2=(*greyctf)[i]; 00228 double red =(*rctf)[i]; 00229 double green =(*gctf)[i]; 00230 double blue = (*bctf)[i]; 00231 ctfun->AddRGBPoint(grey2,red,green,blue); 00232 } 00233 00234 //--------------------------------- 00235 // Refreshing and sending the event 00236 //--------------------------------- 00237 //_wxvtkclipping3Dview->GetVtkClipping3DDataViewer()->ReadVolumeFunctions(); 00238 _wxvtkclipping3Dview->Refresh(); 00239 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh 00240 _wxvtkclipping3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); 00241 00242 /* 00243 volumeMapper->Update(); 00244 newvol->Update(); 00245 */ 00246 } 00247 00248 } 00249 //destroy the dialog 00250 hDlg->Destroy(); 00251 }
void wxVtkClipping3DViewVolCntrlPanel::OnVisibleBoxVolume | ( | wxCommandEvent & | event | ) |
Definition at line 73 of file wxVtkClipping3DViewVolCntrlPanel.cxx.
References _wxvtkclipping3Dview, wxVtkClipping3DView::Refresh(), and wxVtkClipping3DView::SetVisibleBoxVolume().
Referenced by wxVtkClipping3DViewVolCntrlPanel().
00074 { 00075 _wxvtkclipping3Dview->SetVisibleBoxVolume(event.IsChecked() ); 00076 _wxvtkclipping3Dview->Refresh(); 00077 }
void wxVtkClipping3DViewVolCntrlPanel::OnVisibleVolume | ( | wxCommandEvent & | event | ) |
Definition at line 63 of file wxVtkClipping3DViewVolCntrlPanel.cxx.
References _wxvtkclipping3Dview, wxVtkClipping3DView::GetWxvtk3Dbaseview(), wxVtkBaseView::GetWxVTKRenderWindowInteractor(), wxVtkClipping3DView::Refresh(), and wxVtkClipping3DView::VisibleVolumeActor().
Referenced by wxVtkClipping3DViewVolCntrlPanel().
00064 { 00065 _wxvtkclipping3Dview->VisibleVolumeActor( event.IsChecked() ); 00066 _wxvtkclipping3Dview->Refresh(); 00067 00068 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh 00069 _wxvtkclipping3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1); 00070 }
void wxVtkClipping3DViewVolCntrlPanel::Refresh | ( | ) | [virtual] |
Definition at line 58 of file wxVtkClipping3DViewVolCntrlPanel.cxx.
Definition at line 20 of file wxVtkClipping3DViewVolCntrlPanel.h.
Referenced by OnBtnVolumeFunctions(), OnVisibleBoxVolume(), OnVisibleVolume(), and wxVtkClipping3DViewVolCntrlPanel().