]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderTabbedPanel.cpp
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasRenderTabbedPanel.cpp
index 414d660457c238c15199755903562a620d53f2c9..80eb7e54a1aedd06abdbb6ea08b32833ab45f7f9 100644 (file)
@@ -42,6 +42,9 @@ wxMaracasRenderTabbedPanel::~wxMaracasRenderTabbedPanel()
        //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSA(_propid, false);
        //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSB(_propid, false);
        //wxMaracasRenderTabbedPanel::getInstance()->addRemoveActorSC(_propid, false);
+       if( vtkmpr3Ddataviewer  )       { delete vtkmpr3Ddataviewer;    }
+       if( mwxvtkmpr3Dview             )       { delete mwxvtkmpr3Dview;               }
+
        this->deleteVolume(_id);
        delete dialog;
        delete wxtabs;  
@@ -57,17 +60,17 @@ void wxMaracasRenderTabbedPanel::createControls(vtkImageData* inImg, std::string
        wxFlexGridSizer* sizercheck = new wxFlexGridSizer(3);
        checkboxVol = new  wxCheckBox(this,-1,wxString(_T("Volume Rendering")));
        Connect(checkboxVol->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxVChange);   
-       checkboxVol->SetValue(true);    
+       checkboxVol->SetValue(false);   
        sizercheck->Add(checkboxVol, wxFIXED_MINSIZE);
 
        checkboxSA = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
        Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);   
-       checkboxSA->SetValue(true);     
+       checkboxSA->SetValue(false);    
        sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);   
 
        checkboxViewer = new  wxCheckBox(this,-1,wxString(_T("MPR")));
        Connect(checkboxViewer->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onMPROptions);     
-       checkboxViewer->SetValue(false);
+       checkboxViewer->SetValue(true);
        sizercheck->Add(checkboxViewer, wxFIXED_MINSIZE);
 
        checkboxSB = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
@@ -150,6 +153,9 @@ void wxMaracasRenderTabbedPanel::addVolume(vtkImageData* img, std::string datana
                        wxMaracasMultipleVolumeRendererPanel* controlpanV = new wxMaracasMultipleVolumeRendererPanel(wxtabs, _propidV, img, true);
                        wxtabs->AddPage(controlpanV, _T("Vol Rendering"), true);
                        controlpanV->updateVolume();
+                       wxtabs->GetPage(0)->Disable();
+
+                       volmanager->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
                }
        }
        catch(char* str)
@@ -176,6 +182,9 @@ void wxMaracasRenderTabbedPanel::addSurface1(vtkImageData* img, std::string data
                        int maxiso = surrendmanager1->getMaxIsoValue(_propidSA);
                        ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSA)->createControls(maxiso);
                        wxtabs->AddPage(controlpanSA, _T("SR A"));
+                       wxtabs->GetPage(1)->Disable();
+
+                       surrendmanager1->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
                }
        }
        catch(char* str)
@@ -203,6 +212,8 @@ void wxMaracasRenderTabbedPanel::addSurface2(vtkImageData* img, std::string data
                        wxtabs->AddPage(controlpanSB, _T("SR B"));
                        wxtabs->GetPage(2)->Disable();
 
+                       surrendmanager2->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
+
                }
        }
        catch(char* str)
@@ -230,6 +241,8 @@ void wxMaracasRenderTabbedPanel::addSurface3(vtkImageData* img, std::string data
                        ((wxMaracasSurfaceRenderingProp3DMHD*)controlpanSC)->createControls(maxiso);
                        wxtabs->AddPage(controlpanSC, _T("SR C"));
                        wxtabs->GetPage(3)->Disable();
+
+                       surrendmanager3->addRemoveActor(this->getPropIdV(), checkboxSC->GetValue());
                }
        }
        catch(char* str)
@@ -264,25 +277,24 @@ void wxMaracasRenderTabbedPanel::addMPROptions()
        spc[2] = 0;
 
        vtkMPRBaseData* mvtkmprbasedata = new vtkMPRBaseData(); 
-       marImageData* marimagedata              = new marImageData( getVolImage() );                    
-       mvtkmprbasedata->SetMarImageData(marimagedata);
+       marImageData*   marimagedata    = new marImageData( getVolImage() );                    
+       mvtkmprbasedata                                 ->SetMarImageData(marimagedata);
        
        mwxvtkmpr3Dview                                 = new wxVtkMPR3DView( baseView );
 
        vtkmpr3Ddataviewer                              = new vtkMPR3DDataViewer();     
 
-       wxPanel         *panelControl           = new wxPanel(wxtabs,-1);       
+       wxPanel                 *panelControl   = new wxPanel(wxtabs,-1);       
        controlPanelMPR3D                               = mwxvtkmpr3Dview->CreateControlPanel(panelControl, true);
 
-       wxFlexGridSizer  *sizerCtrol    = new wxFlexGridSizer(1);
-       sizerCtrol->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
+       wxFlexGridSizer *sizerCtrol             = new wxFlexGridSizer(1);
+       sizerCtrol                                              ->Add(controlPanelMPR3D, 1, wxALL|wxEXPAND, 2);
 
        panelControl->SetAutoLayout(true);
        panelControl->SetSizer(sizerCtrol);
        panelControl->SetSize(400,350);
        panelControl->Layout();
 
-
        if (mvtkmprbasedata!=NULL)
        {
                mvtkmprbasedata->Configure();
@@ -327,9 +339,14 @@ void wxMaracasRenderTabbedPanel::addMPROptions()
                mwxvtkmpr3Dview         ->ResetCamera(ext,org,spc);
        }
 
+       int id = 4;
        wxtabs->AddPage(panelControl, _T("MPR"));
-       wxtabs->GetPage(4)->Disable();
-       mwxvtkmpr3Dview->showOutlineActor(false);
+       wxtabs->GetPage(id)->Enable();
+       wxtabs->SetSelection(id);
+
+       ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleZ(true);
+       ((wxVtkMPR3DViewCntrlPanel*)controlPanelMPR3D)->SetVisibleXYZ(true);
+       mwxvtkmpr3Dview->showOutlineActor(true);
        mwxvtkmpr3Dview->Refresh();
                        
 }
@@ -692,11 +709,16 @@ void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event)
                bool valueX = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleX();
                bool valueY = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleY();
                bool valueZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleZ();
+               bool valueXYZ = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisibleXYZ();
+               bool valuePlane = ((wxVtkMPR3DViewCntrlPanel*) controlPanelMPR3D)->GetVisiblePlane();
 
                mwxvtkmpr3Dview->VisibleImageActor( 0, valueX );
                mwxvtkmpr3Dview->VisibleImageActor( 1, valueY );
                mwxvtkmpr3Dview->VisibleImageActor( 2, valueZ );
+               mwxvtkmpr3Dview->VisiblePointWidget(valueXYZ);
+               mwxvtkmpr3Dview->VisiblePlaneWidget(valuePlane);
                mwxvtkmpr3Dview->showOutlineActor(true);
+               
                mwxvtkmpr3Dview->Refresh();
 
                wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
@@ -707,6 +729,8 @@ void wxMaracasRenderTabbedPanel::onMPROptions(wxCommandEvent& event)
        {
                wxtabs->GetPage(id)->Disable();
 
+               mwxvtkmpr3Dview->VisiblePointWidget(false);
+               mwxvtkmpr3Dview->VisiblePlaneWidget(false);
                mwxvtkmpr3Dview->VisibleImageActor(0, false );
                mwxvtkmpr3Dview->VisibleImageActor(1, false );
                mwxvtkmpr3Dview->VisibleImageActor(2, false );
@@ -725,7 +749,7 @@ void wxMaracasRenderTabbedPanel::onOpenParameters(wxCommandEvent& event){
        if(dialog == NULL)
        {
                dialog = new wxMaracasRenderImageManagementPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, volname, _id);
-               dialog->SetSize(400, 580);
+               dialog->SetSize(460, 580);
                dialog->Show();
        }
        else if(dialog != NULL)
@@ -747,12 +771,15 @@ void wxMaracasRenderTabbedPanel::onOpenCutter(wxCommandEvent& event)
        type.push_back(3);
        
        wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Cut Module") ));
-       //dialog1->SetSize(800, 700);
+       dialog1->SetSize(800, 700);
        
        std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll");
-       //cutter = new CutModel2MainPanel(dialog1, path);
+       cutter = CutModel2MainPanel::getInstance(dialog1->getinternalPanel(), path);
+       cutter->setRenderer( dialog1->getViewer()->GetwxVtkBaseView(1)->GetRenderer() );
+       cutter->setInteractor( dialog1->getViewer()->GetwxVtkBaseView(1)->GetWxVTKRenderWindowInteractor() );
+       cutter->setImageData(getVolImage());
        
-       //dialog1->AddPanel(cutter);
+       dialog1->AddPanel(cutter);
        dialog1->Show();
 }