]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx
external mvtkmprbasedata, to get the point
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracas_ViewerWidget.cxx
index ad0572976e277b80db4349fcc4f765a6deab230e..66d647ef5e373504159a2ea02fb2bf8b52938438 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracas_ViewerWidget.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/11/30 20:52:51 $
-  Version:   $Revision: 1.20 $
+  Date:      $Date: 2010/03/17 16:52:51 $
+  Version:   $Revision: 1.24 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -19,7 +19,7 @@
 // Definition includes
 //------------------------------------------------------------------------------------------------------------
 #include "wxMaracas_ViewerWidget.h"
-
+#include <wx/notebook.h>
 //------------------------------------------------------------------------------------------------------------
 // Other includes
 //------------------------------------------------------------------------------------------------------------
                : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
        {
                wxPanel *panel = this;
-               wxWindow *wxwindow = NULL;
+               wxWindow *wxwindow = NULL, *window3D    = 0;            
+               wxSplitterWindow        *panelClipping3D        = 0;
+//             wxPanel *panelControl                                   = 0;
+//             wxFlexGridSizer  *sizerCtrol                    = 0;            
+               wxPanel *controlPanelMPR3D                              = 0;
+               wxPanel *controlPanelClippingSurf3D             = 0;
+               //RaC 03-2010 Adding a tab
+               wxPanel *controlPanelClippingVol3D              = 0;
+
+               wxBoxSizer *sizer                                               = 0;
+
 
                mType = type;
 
                        mvtk2Dbaseview  = new wxVtk2DBaseView(panel);
                        mvtk2Dbaseview->SetVtkBaseData(mvtkmprbasedata);
                        wxwindow                = mvtk2Dbaseview->GetWxVTKRenderWindowInteractor();
-               }
-
-
-               if (type==0)
+               }else if (type==0)
                {
                        mvtkmpr2Dview_Z = new wxVtkMPR2DView(panel,2);
                        mvtkmpr2Dview_Z->SetVtkBaseData(mvtkmprbasedata);
                        wxwindow                = mvtkmpr2Dview_Z->GetWxVTKRenderWindowInteractor();
-               }
-               if (type==1)
+               }else if (type==1)
                {
                        mvtkmpr2Dview_X = new wxVtkMPR2DView(panel,0);
                        mvtkmpr2Dview_X->SetVtkBaseData(mvtkmprbasedata);
                        wxwindow                =       mvtkmpr2Dview_X->GetWxVTKRenderWindowInteractor();
-               }
-
-               if (type==2)
+               }else if (type==2)
                {
                        mvtkmpr2Dview_Y = new wxVtkMPR2DView(panel,1);
                        mvtkmpr2Dview_Y->SetVtkBaseData(mvtkmprbasedata);
                        wxwindow                = mvtkmpr2Dview_Y->GetWxVTKRenderWindowInteractor();
-               }
-
-
-               if (type==3)
+               }else if (type==3)
                {
                        mwidgetMesure           = new wxWidgetMesure2D_Plane_in_MPR(panel);
                        mvtkplane2Dview         = new vtkPlane2DView( mwidgetMesure->GetWindow2());
                        mvtkplane2Dview -> SetImgSize( 200 );
                        mvtkplane2Dview -> SetVtkBaseData(mvtkmprbasedata);
                        wxwindow                        = mwidgetMesure;
-               }
-               if (type==4)
+               }else if (type==4)
                {
                        mwxsphereview           = new wxSphereView( panel , mvtkmprbasedata, mvtkmprbasedata->GetImageData() );
                        wxwindow=mwxsphereview->GetWxVTKRenderWindowInteractor();
-               }
-
-
-               if (type==5)
+               }else if (type==5)
                {
-                       wxSplitterWindow        *panelClipping3D        = new wxSplitterWindow( panel , -1);
+                       panelClipping3D = new wxSplitterWindow( panel , -1);
                        mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panelClipping3D );
 
                        mwxvtkclipping3Dview                                            = new wxVtkClipping3DView(mwxvtk3Dbaseview_Clipping3D);
                        vtkmpr3Ddataviewer->Configure();
                        mwxvtkmpr3Dview->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
 
-                       wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
+                       window3D = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
 
-                       wxPanel                 *panelControl                   = new wxPanel(panelClipping3D,-1);      
-                       wxPanel                 *controlPanelMPR3D              = mwxvtkmpr3Dview->CreateControlPanel(panelControl, false);
-                       wxPanel                 *controlPanelClipping3D = mwxvtkclipping3Dview->CreateControlPanel(panelControl);
+
+//--                   
+                       wxNotebook *notebook = new wxNotebook(panelClipping3D, -1);
+
+                       // First tab
+                       controlPanelMPR3D               = mwxvtkmpr3Dview->CreateControlPanel(notebook, true);
+                       notebook->AddPage(controlPanelMPR3D, _T("Planes") );
+
+                       // Second Tab
+                       controlPanelClippingSurf3D      = mwxvtkclipping3Dview->CreateSurfControlPanel(notebook);                       
+                       notebook->AddPage(controlPanelClippingSurf3D, _T("Surface") );
+                       
+                       //Third tab
+                       //RaC 03-2010 Moving the volume functionnality to other tab. The changes were realized only in the wxVtkClipping3DViewCntrlPanel class
+                       controlPanelClippingVol3D       = mwxvtkclipping3Dview->CreateVolControlPanel(notebook);
+                       notebook->AddPage(controlPanelClippingVol3D, _T("Volume") );
+
+
+                       panelClipping3D -> SplitHorizontally( notebook , window3D , 10  );
+                       panelClipping3D -> SetMinimumPaneSize( 15 );
+                       
+       /*              EED 04 / Febrary / 2010
+                       panelControl                    = new wxPanel(panelClipping3D,-1);      
+                       controlPanelMPR3D               = mwxvtkmpr3Dview->CreateControlPanel(panelControl, false);
+                       controlPanelClipping3D  = mwxvtkclipping3Dview->CreateControlPanel(panelControl);
        //                               mbtnCutImageData               = new wxCheckBox(panelControl,-1,_T("Cut Module"));
        //              Connect(_btnCutImageData->GetId() , wxEVT_COMMAND_CHECKBOX_CLICKED  , (wxObjectEventFunction) &wxMPRWidget::OnCutImagaData );
-
-                       wxFlexGridSizer  *sizerCtrol             = new wxFlexGridSizer(1);
+                       sizerCtrol             = new wxFlexGridSizer(1);
                        sizerCtrol->Add(controlPanelMPR3D               , 1, wxALL|wxEXPAND, 2);
                        sizerCtrol->Add(controlPanelClipping3D  , 1, wxALL|wxEXPAND, 2);
        //              sizerCtrol->Add( mbtnCutImageData               , 1, wxALL, 2);
-
                        panelControl->SetAutoLayout(true);
                        panelControl->SetSizer(sizerCtrol);
                        panelControl->SetSize(400,350);
                        panelControl->Layout();
-                       panelClipping3D -> SetMinimumPaneSize( 5 );
                        panelClipping3D -> SplitHorizontally( panelControl , window3D , 10  );
+                       panelClipping3D -> SetMinimumPaneSize( 5 );
+        */
                        wxwindow=panelClipping3D;
-               }
-
-               if (type==6)
-               {
-                       wxSplitterWindow        *panelClipping3D        = new wxSplitterWindow( panel , -1);
+                       
+               } else if (type==6)             {
+                       panelClipping3D = new wxSplitterWindow( panel , -1);
                        mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panelClipping3D );
 
                        mwxvtkmpr3Dview                                                 = new wxVtkMPR3DView( mwxvtk3Dbaseview_Clipping3D );
 
-
                        vtkmpr3Ddataviewer      = new vtkMPR3DDataViewer();     
-
                        
-
                        wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
 
                        wxPanel                 *panelControl                   = new wxPanel(panelClipping3D,-1);      
 
                        mwxvtkmpr3Dview->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
                        
-               }
-
-               if (type==7)
-               {
-                       mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panel );
-                       wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
-                       wxwindow=window3D;
-
-/*Borrame
-                       wxSplitterWindow        *panelClipping3D        = new wxSplitterWindow( panel , -1);
-                       mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panelClipping3D );
-                       wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
-                       panelClipping3D ->SetMinimumPaneSize( 5 );
-                       panelClipping3D ->SplitHorizontally( new wxPanel(panelClipping3D,-1) , window3D , 10  );
-                       wxwindow=panelClipping3D;
-*/
+               }else if (type==7)
+               {       
+                       
+                       mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panel );                                         
+                       wxwindow = (wxWindow*) mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
+                       
 
-/*Borrame
-                       wxSplitterWindow        *panelClipping3D        = new wxSplitterWindow( panel , -1);
-                       mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panelClipping3D );
-                       mwxvtkmpr3Dview                                                 = new wxVtkMPR3DView( mwxvtk3Dbaseview_Clipping3D );
-                       vtkmpr3Ddataviewer      = new vtkMPR3DDataViewer();     
-                       wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
-                       wxPanel                 *panelControl                   = new wxPanel(panelClipping3D,-1);      
-                       wxPanel                 *controlPanelMPR3D              = mwxvtkmpr3Dview->CreateControlPanel(panelControl);
-                       wxFlexGridSizer  *sizerCtrol             = new wxFlexGridSizer(1);
-                       sizerCtrol->Add(controlPanelMPR3D               , 1, wxALL|wxEXPAND, 2);
-                       panelControl->SetAutoLayout(true);
-                       panelControl->SetSizer(sizerCtrol);
-                       panelControl->SetSize(400,350);
-                       panelControl->Layout();
-                       panelClipping3D -> SetMinimumPaneSize( 5 );
-                       panelClipping3D -> SplitHorizontally( panelControl , window3D , 10  );
-                       wxwindow=panelClipping3D;
-                       vtkmpr3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);                 
-                       //vtkmpr3Ddataviewer->Configure();
-                       mwxvtkmpr3Dview->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
-*/
                }
 
    
-       wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
+       sizer = new wxBoxSizer(wxVERTICAL);
        sizer->Add( wxwindow , 1, wxGROW);      
        panel->SetSizer(sizer);
        panel->SetAutoLayout(true);
        //------------------------------------------------------------------------------------------------------------
 
        //-------------------------------------------------------------------------
+       
 
        void wxMaracas_ViewerWidget::ConfigureVTK()
        {
                if ( mwidgetMesure                              !=NULL ) { mwidgetMesure                                ->      SetMesureScale( 1 );            }
                if ( mwxsphereview                              !=NULL ) { mwxsphereview                                ->      Configure();                            }
 
-               printf("CPR wxMaracas_ViewerWidget::ConfigureVTK A \n");
-               if (mwxvtk3Dbaseview_Clipping3D !=NULL) { mwxvtk3Dbaseview_Clipping3D   ->      Configure();                            
-               printf("CPR wxMaracas_ViewerWidget::ConfigureVTK B \n");
-/*Borrame
-               mwxvtk3Dbaseview_Clipping3D->GetRenderer()->SetActiveCamera(mwxvtk3Dbaseview_Clipping3D->GetCamera());
-               mwxvtk3Dbaseview_Clipping3D->GetRenderer()->ResetCamera ();     
-               mwxvtk3Dbaseview_Clipping3D->GetCamera()->Dolly(1.5);   
-               mwxvtk3Dbaseview_Clipping3D->GetRenderer()->SetBackground( 0.36 , 0.36 , 0.36 );
-               mwxvtk3Dbaseview_Clipping3D->GetRenWin()->SetSize(400, 400);
-               mwxvtk3Dbaseview_Clipping3D->GetRenderer()->ResetCameraClippingRange();
-*/
+               if (mwxvtk3Dbaseview_Clipping3D !=NULL) {
+                       mwxvtk3Dbaseview_Clipping3D     ->      Configure();    
+                       
                }
                
                if (vtkmpr3Ddataviewer                  !=NULL) {                       
                if (mwxvtkclipping3Dview                !=NULL) { mwxvtkclipping3Dview                  ->      Configure();                            }
                
                
+               
+               
+               
+               
 
                
                //if(vtkmpr3Ddataviewer!=NULL){vtkmpr3Ddataviewer->Configure();}
                        mwxvtkmpr3Dview->setColorLevel(level);
                }*/
     }
+
+