wxMaracasRenderTabbedPanel.cpp

Go to the documentation of this file.
00001 #include "wxMaracasRenderTabbedPanel.h"
00002 
00003 #include "HistogramDialogComboBox.h"
00004 #include "wxMaracasMultipleVolumeRendererPanel.h"
00005 #include "wxMaracasSurfaceRenderingPanel.h"
00006 #include "wxMaracasSurfaceRenderingProp3DMHD.h"
00007 #include "wxMaracasMultipleVolumeRendererManagerData.h"
00008 #include "wxMaracasDialog_NViewers.h"
00009 #include "wxVtkMPR3DViewCntrlPanel.h"
00010 
00011 #include <wx/colordlg.h>
00012 #include <wx/button.h> 
00013 #include <vtkProp3D.h>
00014 #include <OpenImage.xpm>
00015 
00016 #include "Color.xpm"
00017 //#include "creaSystem.h"
00018 
00019 #include "creaWx.h"
00020 
00021         BEGIN_EVENT_TABLE( wxMaracasRenderTabbedPanel, wxPanel )
00022                 EVT_MENU( 12121, wxMaracasRenderTabbedPanel::OnRefreshView )
00023                 //EVT_MENU( 12122, wxMaracasRenderTabbedPanel::OnDClickLeft  )
00024         END_EVENT_TABLE( );
00025 
00029 wxMaracasRenderTabbedPanel::wxMaracasRenderTabbedPanel(wxWindow* parent, int id, wxVtk3DBaseView* _baseView)
00030   : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize)
00031 {
00032         _id = id;
00033         baseView = _baseView;
00034         dialog = NULL;
00035 
00036         volmanager =      new wxMaracasMultipleVolumeRendererManager();
00037         surrendmanager1 = new wxMaracasSurfaceRenderingManager();
00038         surrendmanager2 = new wxMaracasSurfaceRenderingManager();
00039         surrendmanager3 = new wxMaracasSurfaceRenderingManager();
00040 }
00041 
00045 wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
00046 {       
00047         //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorV(_propid, false);
00048         //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSA(_propid, false);
00049         //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSB(_propid, false);
00050         //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSC(_propid, false);
00051         addRemoveActorMPR(false);
00052         if( vtkmpr3Ddataviewer  )   { delete vtkmpr3Ddataviewer; }
00053         if( mwxvtkmpr3Dview     )   { delete mwxvtkmpr3Dview;    }
00054 
00055         this->deleteVolume(_id);
00056         delete dialog;
00057         delete wxtabs;
00058 }
00059 
00063 void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string pathfile, std::string filename)
00064 {
00065         wxFlexGridSizer* sizerrenderprop = new wxFlexGridSizer(1);
00066 
00067         wxFlexGridSizer* sizercheck = new wxFlexGridSizer(3);
00068         checkboxVol = new  wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
00069         Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);   
00070         checkboxVol->SetValue(false);   
00071         sizercheck->Add(checkboxVol, wxFIXED_MINSIZE);
00072 
00073         checkboxSA = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
00074         Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);   
00075         checkboxSA->SetValue(false);    
00076         sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);   
00077 
00078         checkboxViewer = new  wxCheckBox(this,-1,wxString(_T("MPR")));
00079         Connect(checkboxViewer->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onMPROptions);     
00080         checkboxViewer->SetValue(true);
00081         sizercheck->Add(checkboxViewer, wxFIXED_MINSIZE);
00082 
00083         checkboxSB = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
00084         Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);   
00085         checkboxSB->SetValue(false);    
00086         sizercheck->Add(checkboxSB, wxFIXED_MINSIZE);
00087 
00088         checkboxSC = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
00089         Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);   
00090         checkboxSC->SetValue(false);    
00091         sizercheck->Add(checkboxSC, wxFIXED_MINSIZE);
00092         
00093         sizercheck->Add(new wxStaticText(this, -1,_T("")), wxFIXED_MINSIZE);
00094 
00095         wxButton* _openParameters = new wxButton(this, -1, wxString(_T("Apply Transformation")));       
00096         Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenParameters);                  
00097         sizercheck->Add(_openParameters,wxFIXED_MINSIZE);
00098 
00099         wxButton* _openCutter = new wxButton(this, -1, wxString(_T("Open Cutter View")));       
00100         Connect(_openCutter->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onOpenCutter);                  
00101         sizercheck->Add(_openCutter,wxFIXED_MINSIZE);
00102         sizerrenderprop->Add(sizercheck, wxFIXED_MINSIZE);
00103 
00104         wxtabs = new wxNotebook(this, -1);
00105 
00106         if(inImg == NULL)
00107         {
00108                 vtkImageData* img = volmanager->getImageData(pathfile);
00109                 //vtkImageData* img1 = surrendmanager1->getImageData(pathfile);
00110                 //vtkImageData* img2 = surrendmanager2->getImageData(pathfile);
00111                 //vtkImageData* img3 = surrendmanager3->getImageData(pathfile);
00112                 if(img!=NULL /*&& img1!=NULL && img2!=NULL && img3!=NULL*/)
00113                 {
00114                         addVolume(img,   filename);
00115                         addSurface1(img, filename);
00116                         addSurface2(img, filename);
00117                         addSurface3(img, filename);     
00118                         addMPROptions();
00119                         volname = crea::std2wx(filename);
00120                         wxtabs->Refresh();
00121                 }
00122         }       
00123         else
00124         {
00125                 addVolume(inImg, filename);
00126                 addSurface1(inImg, filename);
00127                 addSurface2(inImg, filename);
00128                 addSurface3(inImg, filename);   
00129                 wxtabs->Refresh();
00130         }
00131 
00132         sizerrenderprop->Add(wxtabs, wxSizerFlags().Expand().Center());
00133 
00134         this->SetSizer(sizerrenderprop, true);          
00135         this->SetAutoLayout( true );
00136 }
00137 
00138 
00142 void wxMaracasRenderTabbedPanel::setRenderer(vtkRenderer* renderer)
00143 {
00144         volmanager->setRenderer(renderer);
00145         surrendmanager1->setRenderer(renderer);
00146         surrendmanager2->setRenderer(renderer);
00147         surrendmanager3->setRenderer(renderer);
00148 }
00149 
00153 void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string dataname)
00154 {
00155         try
00156         {
00157                 int _propidV = volmanager->addVolume(_id, img, dataname);
00158                 if(_propidV!=-1)
00159                 {
00160                         wxMaracasMultipleVolumeRendererPanel* controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true);
00161                         wxtabs->AddPage(controlpanV, _T("Vol Rendering"), true);
00162                         controlpanV->updateVolume();
00163                         wxtabs->GetPage(0)->Disable();
00164 
00165                         volmanager->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
00166                 }
00167         }
00168         catch(char* str)
00169         {
00170                 std::cout << "Exception : " << str << '\n';
00171                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00172                 diag->ShowModal();
00173                 delete diag;
00174         }
00175 }
00176 
00180 void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string dataname)
00181 {
00182         try
00183         {
00184                 int _propidSA = surrendmanager1->addPropMHD(_id, img, dataname);
00185                 
00186                 if(_propidSA!=-1)
00187                 {
00188                         wxMaracasSurfaceRenderingPanel* controlpanSA = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSA, true, 1);
00189                         int maxiso = surrendmanager1->getMaxIsoValue(_propidSA);
00190                         ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSA)->createControls(maxiso);
00191                         wxtabs->AddPage(controlpanSA, _T("SR A"));
00192                         wxtabs->GetPage(1)->Disable();
00193 
00194                         surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
00195                 }
00196         }
00197         catch(char* str)
00198         {
00199                 std::cout << "Exception : " << str << '\n';
00200                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00201                 diag->ShowModal();
00202                 delete diag;
00203         }
00204 }
00205 
00209 void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string dataname)
00210 {
00211         try
00212         {
00213                 int _propidSB = surrendmanager2->addPropMHD(_id, img, dataname);
00214                 if(_propidSB!=-1)
00215                 {
00216                         wxMaracasSurfaceRenderingPanel* controlpanSB = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSB, true, 2);
00217                         int maxiso = surrendmanager2->getMaxIsoValue(_propidSB);
00218                         ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSB)->createControls(maxiso);
00219                         wxtabs->AddPage(controlpanSB, _T("SR B"));
00220                         wxtabs->GetPage(2)->Disable();
00221 
00222                         surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
00223 
00224                 }
00225         }
00226         catch(char* str)
00227         {
00228                 std::cout << "Exception : " << str << '\n';
00229                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00230                 diag->ShowModal();
00231                 delete diag;
00232         }
00233 }
00234 
00238 void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string dataname)
00239 {
00240         try
00241         {
00242                 int _propidSC = surrendmanager3->addPropMHD(_id, img, dataname);
00243 
00244                 if(_propidSC!=-1)
00245                 {
00246                         wxMaracasSurfaceRenderingPanel* controlpanSC = new wxMaracasSurfaceRenderingProp3DMHD(wxtabs, _propidSC, true, 3);
00247                         int maxiso = surrendmanager3->getMaxIsoValue(_propidSC);
00248                         ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso);
00249                         wxtabs->AddPage(controlpanSC, _T("SR C"));
00250                         wxtabs->GetPage(3)->Disable();
00251 
00252                         surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
00253                 }
00254         }
00255         catch(char* str)
00256         {
00257                 std::cout << "Exception : " << str << '\n';
00258                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00259                 diag->ShowModal();
00260                 delete diag;
00261         }
00262 }
00263 
00267 void wxMaracasRenderTabbedPanel::addMPROptions()
00268 {
00269         //Panel Construction
00270         vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData(); 
00271         marImageData*   marimagedata    = new marImageData( getVolImage() );                    
00272         mvtkmprbasedata                                 ->SetMarImageData(marimagedata);
00273         
00274         mwxvtkmpr3Dview                                 = new wxVtkMPR3DView( baseView );
00275 
00276         vtkmpr3Ddataviewer                              = new vtkMPR3DDataViewer();     
00277 
00278         wxPanel                 *panelControl   = new wxPanel(wxtabs,-1);       
00279         controlPanelMPR3D                               = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true);
00280 
00281         wxFlexGridSizer *sizerCtrol             = new wxFlexGridSizer(1);
00282         sizerCtrol                                              ->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
00283 
00284         panelControl->SetAutoLayout(true);
00285         panelControl->SetSizer(sizerCtrol);
00286         panelControl->SetSize(400,350);
00287         panelControl->Layout();
00288 
00289         //Configure MPR
00290         int x = 0,y = 0,z = 0;
00291         int ext[6];
00292         ext[0] = 0;
00293         ext[1] = 0;
00294         ext[2] = 0;
00295         ext[3] = 0;
00296         ext[4] = 0;
00297         ext[5] = 0;
00298 
00299         double org[3],spc[3];
00300         org[0] = 0;
00301         org[1] = 0;
00302         org[2] = 0;
00303         spc[0] = 0;
00304         spc[1] = 0;
00305         spc[2] = 0;
00306 
00307         if (mvtkmprbasedata!=NULL)
00308         {
00309                 mvtkmprbasedata->Configure();
00310                 /*x = mvtkmprbasedata   ->      GetMaxPositionX()/2;
00311                 y = mvtkmprbasedata     ->      GetMaxPositionY()/2;
00312                 z = mvtkmprbasedata     ->      GetMaxPositionZ()/2;            */      
00313                 
00314                 if(mvtkmprbasedata->GetImageData() != NULL)
00315                 {
00316                         mvtkmprbasedata->GetImageData()->GetExtent(ext);
00317                         mvtkmprbasedata->GetImageData()->GetOrigin(org);
00318                         mvtkmprbasedata->GetImageData()->GetSpacing(spc);
00319 
00320                         x = (ext[0]+ext[1])/2;
00321                         y = (ext[2]+ext[3])/2;
00322                         z = (ext[4]+ext[5])/2;
00323 
00324                         mvtkmprbasedata->SetX( x );
00325                         mvtkmprbasedata->SetY( y );
00326                         mvtkmprbasedata->SetZ( z );
00327                 }
00328                 else
00329                 {
00330                         mvtkmprbasedata->SetX( 0 );
00331                         mvtkmprbasedata->SetY( 0 );
00332                         mvtkmprbasedata->SetZ( 0 );
00333                 }
00334         }
00335 
00336         if (baseView!=NULL)     
00337         {
00338                 baseView                        ->Configure();  
00339         }
00340 
00341         if (vtkmpr3Ddataviewer  !=NULL) 
00342         {
00343                 vtkmpr3Ddataviewer      ->SetVtkMPRBaseData(mvtkmprbasedata);
00344                 vtkmpr3Ddataviewer      ->Configure();
00345         }
00346         if (mwxvtkmpr3Dview     !=NULL) 
00347         { 
00348                 mwxvtkmpr3Dview         ->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);            
00349                 mwxvtkmpr3Dview         ->Configure();
00350                 mwxvtkmpr3Dview         ->ResetCamera(ext,org,spc);
00351                 vtkInteractorStyleBaseView* vtkInteractorBV = (vtkInteractorStyleBaseView*)mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetInteractorStyleBaseView();
00352                 vtkInteractorBV->AddParentToReport(this);
00353         }
00354 
00355         int id = 4;
00356         wxtabs->AddPage(panelControl, _T("MPR"));
00357         wxtabs->GetPage(id)->Enable();
00358         wxtabs->SetSelection(id);
00359 
00360         ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleZ(true);
00361         ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleXYZ(true);
00362         mwxvtkmpr3Dview->showOutlineActor(true);
00363         mwxvtkmpr3Dview->Refresh();
00364                         
00365 }
00366 
00370 void wxMaracasRenderTabbedPanel::deleteVolume(int volid)
00371 {
00372         try
00373         {
00374                 volmanager->deleteActor(volid);
00375                 surrendmanager1->deleteActor(volid);
00376                 surrendmanager2->deleteActor(volid);
00377                 surrendmanager3->deleteActor(volid);
00378         }
00379         catch(char* str)
00380         {
00381                 std::cout << "Exception : " << str << '\n';
00382                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00383                 diag->ShowModal();
00384                 delete diag;
00385         }
00386 }
00387 
00391 void wxMaracasRenderTabbedPanel::addRemoveActorV(int id, bool addremove)
00392 {
00393         try{
00394                 volmanager->addRemoveActor(id, addremove);
00395 
00396         }
00397         catch(char* str){
00398                 std::cout << "Exception : " << str << '\n';
00399                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00400                 diag->ShowModal();
00401                 delete diag;
00402         }
00403 }
00404 
00408 void wxMaracasRenderTabbedPanel::addRemoveActorSA(int id, bool addremove)
00409 {
00410         try{
00411                 surrendmanager1->addRemoveActor(id, addremove);
00412         }
00413         catch(char* str){
00414                 std::cout << "Exception : " << str << '\n';
00415                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00416                 diag->ShowModal();
00417                 delete diag;
00418         }
00419 }
00420 
00424 void wxMaracasRenderTabbedPanel::addRemoveActorSB(int id, bool addremove)
00425 {
00426         try{
00427                 surrendmanager2->addRemoveActor(id, addremove);
00428         }
00429         catch(char* str){
00430                 std::cout << "Exception : " << str << '\n';
00431                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00432                 diag->ShowModal();
00433                 delete diag;
00434         }
00435 }
00436 
00440 void wxMaracasRenderTabbedPanel::addRemoveActorSC(int id, bool addremove)
00441 {       
00442         try{
00443                 surrendmanager3->addRemoveActor(id, addremove);
00444         }
00445         catch(char* str){
00446                 std::cout << "Exception : " << str << '\n';
00447                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00448                 diag->ShowModal();
00449                 delete diag;
00450         }
00451 }
00452 
00453 void wxMaracasRenderTabbedPanel::addRemoveActorMPR(bool addremove)
00454 {
00455         int id = 4;
00456         wxtabs->SetSelection(id);
00457         if(addremove)
00458         {
00459                 wxtabs->GetPage(id)->Enable();
00460 
00461                 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
00462                 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
00463                 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
00464                 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
00465                 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
00466 
00467                 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
00468                 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
00469                 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
00470                 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
00471                 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
00472                 mwxvtkmpr3Dview->showOutlineActor(true);
00473                 
00474                 mwxvtkmpr3Dview->Refresh();
00475 
00476 
00477         }
00478         else
00479         {
00480                 wxtabs->GetPage(id)->Disable();
00481 
00482                 mwxvtkmpr3Dview->VisiblePointWidget(false);
00483                 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
00484                 mwxvtkmpr3Dview->VisibleImageActor(0, false );
00485                 mwxvtkmpr3Dview->VisibleImageActor(1, false );
00486                 mwxvtkmpr3Dview->VisibleImageActor(2, false );
00487                 mwxvtkmpr3Dview->showOutlineActor(false);
00488                 mwxvtkmpr3Dview->Refresh();
00489 
00490                 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
00491                 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
00492         }
00493 }
00494 
00495 
00499 void wxMaracasRenderTabbedPanel::SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue)
00500 {
00501         volmanager->setVolumeColor(volid, greylevelcolors, red, green, blue);
00502 }
00503 
00507 void wxMaracasRenderTabbedPanel::SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values)
00508 {
00509         try{
00510                 volmanager->setVolumeOpacity(volid, greylevel, values);
00511         }
00512         catch(char* str)
00513         {
00514                 wxString s( str,wxConvUTF8 );
00515                 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
00516                 diag->ShowModal();
00517                 delete diag;
00518         }
00519 }
00520 
00524 vtkPiecewiseFunction* wxMaracasRenderTabbedPanel::GetTransferFunction(int volumeid)
00525 {
00526         return volmanager->GetTransferFunction(volumeid);
00527 }
00528 
00532 vtkColorTransferFunction* wxMaracasRenderTabbedPanel::GetColorFunction(int volumeid)
00533 {
00534     return volmanager->GetColorFunction(volumeid);
00535 }
00536 
00540 void wxMaracasRenderTabbedPanel::changeOpacityA(int _propid, int value)
00541 {
00542         surrendmanager1->changeOpacity(_propid,value);
00543 }
00544 
00548 void wxMaracasRenderTabbedPanel::changeIsoValueA(int propid, double value)
00549 {
00550         surrendmanager1->changeIsoValue(propid, value);
00551 }
00552 
00556 void wxMaracasRenderTabbedPanel::changeColorA(int propid, double red, double green, double blue)
00557 {
00558         try
00559         {
00560                 surrendmanager1->changeColor(propid, red, green, blue);
00561         }
00562         catch(char* str)
00563         {
00564                 wxString s( str,wxConvUTF8 );
00565                 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
00566                 diag->ShowModal();
00567                 delete diag;
00568         }
00569 }
00570 
00574 void wxMaracasRenderTabbedPanel::changeOpacityB(int _propid, int value)
00575 {
00576         surrendmanager2->changeOpacity(_propid,value);
00577 }
00578 
00582 void wxMaracasRenderTabbedPanel::changeIsoValueB(int propid, double value)
00583 {
00584         surrendmanager2->changeIsoValue(propid, value);
00585 }
00586 
00590 void wxMaracasRenderTabbedPanel::changeColorB(int propid, double red, double green, double blue)
00591 {
00592         try
00593         {
00594                 surrendmanager2->changeColor(propid, red, green, blue);
00595         }
00596         catch(char* str)
00597         {
00598                 wxString s( str,wxConvUTF8 );
00599                 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
00600                 diag->ShowModal();
00601                 delete diag;
00602         }
00603 }
00604 
00608 void wxMaracasRenderTabbedPanel::changeOpacityC(int _propid, int value)
00609 {
00610         surrendmanager3->changeOpacity(_propid,value);
00611 }
00612 
00616 void wxMaracasRenderTabbedPanel::changeIsoValueC(int propid, double value)
00617 {
00618         surrendmanager3->changeIsoValue(propid, value);
00619 }
00620 
00624 void wxMaracasRenderTabbedPanel::changeColorC(int propid, double red, double green, double blue)
00625 {
00626         try
00627         {
00628                 surrendmanager3->changeColor(propid, red, green, blue);
00629         }
00630         catch(char* str)
00631         {
00632                 wxString s( str,wxConvUTF8 );
00633                 wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR);
00634                 diag->ShowModal();
00635                 delete diag;
00636         }
00637 }
00638 
00642 void wxMaracasRenderTabbedPanel::onCheckBoxVChange(wxCommandEvent& event)
00643 {
00644         try{
00645                 volmanager->addRemoveActor(this->getPropIdV(), checkboxVol->GetValue());
00646 
00647                 int id = 0;
00648                 wxtabs->SetSelection(id);
00649 
00650                 if(checkboxVol->GetValue())
00651                 {
00652                         wxtabs->GetPage(id)->Enable();
00653                 }
00654                 else
00655                 {       
00656                         wxtabs->GetPage(id)->Disable();
00657                 }
00658         }
00659         catch(char* str){
00660                 std::cout << "Exception : " << str << '\n';
00661                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00662                 diag->ShowModal();
00663                 delete diag;
00664         }
00665 }
00666 
00670 void wxMaracasRenderTabbedPanel::onCheckBoxSAChange(wxCommandEvent& event)
00671 {       
00672         try{
00673                 surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSA->GetValue());    
00674 
00675                 int id = 1;
00676                 wxtabs->SetSelection(id);
00677 
00678                 if(checkboxSA->GetValue())
00679                 {
00680                         wxtabs->GetPage(id)->Enable();
00681 
00682                 }
00683                 else
00684                 {       
00685                         wxtabs->GetPage(id)->Disable();
00686                 }
00687         }
00688         catch(char* str){
00689                 std::cout << "Exception : " << str << '\n';
00690                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00691                 diag->ShowModal();
00692                 delete diag;
00693         }
00694 }
00695 
00699 void wxMaracasRenderTabbedPanel::onCheckBoxSBChange(wxCommandEvent& event)
00700 {       
00701         try{
00702                 surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSB->GetValue());    
00703 
00704                 int id = 2;
00705                 wxtabs->SetSelection(id);
00706 
00707                 if(checkboxSB->GetValue())
00708                 {
00709                         wxtabs->GetPage(id)->Enable();
00710                 }
00711                 else
00712                 {       
00713                         wxtabs->GetPage(id)->Disable();
00714                 }
00715         }
00716         catch(char* str){
00717                 std::cout << "Exception : " << str << '\n';
00718                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00719                 diag->ShowModal();
00720                 delete diag;
00721         }
00722 }
00723 
00727 void wxMaracasRenderTabbedPanel::onCheckBoxSCChange(wxCommandEvent& event)
00728 {       
00729         try{
00730                 surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
00731 
00732                 int id = 3;
00733                 wxtabs->SetSelection(id);
00734 
00735                 if(checkboxSC->GetValue())
00736                 {
00737                         wxtabs->GetPage(id)->Enable();
00738                 }
00739                 else
00740                 {       
00741                         wxtabs->GetPage(id)->Disable();
00742                 }
00743         }
00744         catch(char* str){
00745                 std::cout << "Exception : " << str << '\n';
00746                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00747                 diag->ShowModal();
00748                 delete diag;
00749         }
00750 }
00751 
00755 void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event)
00756 {
00757         addRemoveActorMPR(checkboxViewer->IsChecked());
00758         /*
00759         int id = 4;
00760         wxtabs->SetSelection(id);
00761         if(checkboxViewer->IsChecked())
00762         {
00763                 
00764                 wxtabs->GetPage(id)->Enable();
00765 
00766                 bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
00767                 bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
00768                 bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
00769                 bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
00770                 bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
00771 
00772                 mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
00773                 mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
00774                 mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
00775                 mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
00776                 mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
00777                 mwxvtkmpr3Dview->showOutlineActor(true);
00778                 
00779                 mwxvtkmpr3Dview->Refresh();
00780 
00781 
00782         }
00783         else
00784         {
00785                 wxtabs->GetPage(id)->Disable();
00786 
00787                 mwxvtkmpr3Dview->VisiblePointWidget(false);
00788                 mwxvtkmpr3Dview->VisiblePlaneWidget(false);
00789                 mwxvtkmpr3Dview->VisibleImageActor(0, false );
00790                 mwxvtkmpr3Dview->VisibleImageActor(1, false );
00791                 mwxvtkmpr3Dview->VisibleImageActor(2, false );
00792                 mwxvtkmpr3Dview->showOutlineActor(false);
00793                 mwxvtkmpr3Dview->Refresh();
00794 
00795                 wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
00796                 mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
00797         }*/
00798 }
00799 
00800 void wxMaracasRenderTabbedPanel::OnRefreshView(wxCommandEvent & event) 
00801 {
00802         printf("CPR wxMaracasRenderTabbedPanel::OnRefreshView \n");
00803         mwxvtkmpr3Dview->RefreshView();
00804 
00805         wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
00806         mwxvtkmpr3Dview->GetWxvtk3Dbaseview()->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
00807 }
00808 
00812 void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){       
00813         if(dialog == NULL)
00814         {
00815                 dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, volname, _id);
00816                 dialog->SetSize(460, 580);
00817                 dialog->Show();
00818         }
00819         else if(dialog != NULL)
00820         {
00821                 dialog->Show();
00822         }
00823 }
00824 
00828 void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
00829 {       
00830         vtkImageData* img = getVolImage();      
00831         std::vector<int> type;
00832         type.push_back(5);
00833         type.push_back(1);
00834         type.push_back(2);
00835         type.push_back(0);
00836         
00837         wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Cut Module") ));
00838         //dialog1->SetSize(800, 700);
00839         
00846         //dialog1->AddPanel(cutter);
00847         dialog1->Show();
00848 }
00849 
00853 void wxMaracasRenderTabbedPanel::onColorChange(wxCommandEvent& event)
00854 {       
00855         /*Temporarily disabled*/
00856 
00857         //if(mwxwidget->ShowModal()==wxID_OK){
00858         //updateVolume();
00859         //      mwxwidget->Show(false);
00860         //}     
00861 }
00862 
00866 vtkImageData* wxMaracasRenderTabbedPanel::getVolImage()
00867 {       
00868         return volmanager->getImageData();
00869 }
00870 
00874 vtkImageData* wxMaracasRenderTabbedPanel::getSurfAImage()
00875 {       
00876         return surrendmanager1->getImageData();
00877 }
00878 
00882 vtkImageData* wxMaracasRenderTabbedPanel::getSurfBImage()
00883 {       
00884         return surrendmanager2->getImageData();
00885 }
00886 
00890 vtkImageData* wxMaracasRenderTabbedPanel::getSurfCImage()
00891 {       
00892         return surrendmanager3->getImageData();
00893 }
00894 
00898 int wxMaracasRenderTabbedPanel::getPropIdV()
00899 {
00900         return _id;
00901 }

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1