]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracas_ViewerWidget.cxx
index 67f26f99e7f3c805d22d9f460656341a0944a3aa..f10eac6739610d3869fdadfd54997eeb4dcdabf2 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: wxMaracas_ViewerWidget.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/04/24 15:26:02 $
-  Version:   $Revision: 1.9 $
+  Date:      $Date: 2009/05/14 13:54:35 $
+  Version:   $Revision: 1.12 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -38,7 +38,7 @@
 
                mType = type;
 
-       marImageData    *marimagedata   = new marImageData( imagedata );                        
+               marImageData    *marimagedata   = new marImageData( imagedata );                        
                mvtkmprbasedata                                 = new vtkMPRBaseData(); 
                mvtkmprbasedata->SetMarImageData(marimagedata);
 
@@ -51,7 +51,8 @@
                mwxsphereview                           = NULL;
                mwxvtkclipping3Dview            = NULL;
                mwxvtk3Dbaseview_Clipping3D     = NULL;
-               mwxvtkmpr3Dview                         = NULL; 
+               mwxvtkmpr3Dview                         = NULL;
+               vtkmpr3Ddataviewer                      = NULL;
 
 
                if (type==-1)
                        mwxvtk3Dbaseview_Clipping3D                             = new wxVtk3DBaseView( panelClipping3D );
 
                        mwxvtkmpr3Dview                                                 = new wxVtkMPR3DView( mwxvtk3Dbaseview_Clipping3D );
-                       vtkMPR3DDataViewer *vtkmpr3Ddataviewer  = new vtkMPR3DDataViewer(); 
-                       vtkmpr3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);
-                       vtkmpr3Ddataviewer->Configure();
-                       mwxvtkmpr3Dview->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
+
+
+                       vtkmpr3Ddataviewer      = new vtkMPR3DDataViewer();     
+
+                       
 
                        wxWindow        *window3D                                       = mwxvtk3Dbaseview_Clipping3D->GetWxVTKRenderWindowInteractor();
 
                        panelClipping3D -> SetMinimumPaneSize( 5 );
                        panelClipping3D -> SplitHorizontally( panelControl , window3D , 10  );
                        wxwindow=panelClipping3D;
+
+
+                       vtkmpr3Ddataviewer->SetVtkMPRBaseData(mvtkmprbasedata);                 
+                       //vtkmpr3Ddataviewer->Configure();
+
+                       mwxvtkmpr3Dview->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
+                       
                }
 
 
        void wxMaracas_ViewerWidget::ConfigureVTK()
        {
                int x=0,y=0,z=0;
+               int ext[6];
+               ext[0]=0;
+               ext[1]=0;
+               ext[2]=0;
+               ext[3]=0;
+               ext[4]=0;
+               ext[5]=0;
+               double org[3],spc[3];
+               org[0]=0;
+               org[1]=0;
+               org[2]=0;
+               spc[0]=0;
+               spc[1]=0;
+               spc[2]=0;
+               
+
+
+               if (mvtkmprbasedata!=NULL)
+               {
+                       mvtkmprbasedata->Configure();
+                       /*x = mvtkmprbasedata   ->      GetMaxPositionX()/2;
+                       y = mvtkmprbasedata     ->      GetMaxPositionY()/2;
+                       z = mvtkmprbasedata     ->      GetMaxPositionZ()/2;            */      
+
+                       mvtkmprbasedata->GetImageData()->GetExtent(ext);
+                       mvtkmprbasedata->GetImageData()->GetOrigin(org);
+                       mvtkmprbasedata->GetImageData()->GetSpacing(spc);
+
+                       x = (ext[0]+ext[1])/2;
+                       y = (ext[2]+ext[3])/2;
+                       z = (ext[4]+ext[5])/2;
+
+                       mvtkmprbasedata->SetX( x );
+                       mvtkmprbasedata->SetY( y );
+                       mvtkmprbasedata->SetZ( z );
+
+               }
+               
 
                if ( mvtk2Dbaseview                             !=NULL ) { mvtk2Dbaseview                               ->      Configure();                            }
                if ( mvtkmpr2Dview_X                    !=NULL ) { mvtkmpr2Dview_X                              ->      Configure();                            }
                if ( mwxsphereview                              !=NULL ) { mwxsphereview                                ->      Configure();                            }
 
                if (mwxvtk3Dbaseview_Clipping3D !=NULL) { mwxvtk3Dbaseview_Clipping3D   ->      Configure();                            }
-               if (mwxvtkmpr3Dview                             !=NULL) { mwxvtkmpr3Dview                               ->      Configure();                            }
+               
+               if (vtkmpr3Ddataviewer                  !=NULL) {                       
+                       vtkmpr3Ddataviewer->Configure();
+                       
+               }
+               if (mwxvtkmpr3Dview                             !=NULL) { 
+                       
+                       mwxvtkmpr3Dview                         ->      Configure();
+                       mwxvtkmpr3Dview                         ->ResetCamera(ext,org,spc);
+                       
+                       
+               }
+
                if (mwxvtkclipping3Dview                !=NULL) { mwxvtkclipping3Dview                  ->      Configure();                            }
+               
 
-               if (mvtkmprbasedata!=NULL)
-               {
-                       x = mvtkmprbasedata     ->      GetMaxPositionX()/2;
-                       y = mvtkmprbasedata     ->      GetMaxPositionY()/2;
-                       z = mvtkmprbasedata     ->      GetMaxPositionZ()/2;
-                       mvtkmprbasedata->SetX( x );
-                       mvtkmprbasedata->SetY( y );
-                       mvtkmprbasedata->SetZ( z );
-               }
+               
+
+               
+               //if(vtkmpr3Ddataviewer!=NULL){vtkmpr3Ddataviewer->Configure();}
 //             RefreshView();
+
+               //if (mwxvtkmpr3Dview                           !=NULL) {
+               //      mwxvtkmpr3Dview->ResetCamera();
+               //}
+
        }
 
        //-------------------------------------------------------------------------
        wxVtkBaseView *wxMaracas_ViewerWidget::GetwxVtkBaseView()
        {
                wxVtkBaseView *wxvtkbaseview=NULL;
-               if (mvtk2Dbaseview!=NULL)                               { wxvtkbaseview = mvtk2Dbaseview;                       }
-               if (mvtkmpr2Dview_X!=NULL)                              { wxvtkbaseview = mvtkmpr2Dview_X;                      }
-               if (mvtkmpr2Dview_Y!=NULL)                              { wxvtkbaseview = mvtkmpr2Dview_Y;                      }
-               if (mvtkmpr2Dview_Z!=NULL)                              { wxvtkbaseview = mvtkmpr2Dview_Z;                      }
-               if (mvtkplane2Dview!=NULL)                              { wxvtkbaseview = mvtkplane2Dview;                      }
-               if (mwxsphereview!=NULL)                                { wxvtkbaseview = mwxsphereview;                        }
-               if (mwxvtk3Dbaseview_Clipping3D!=NULL)  { wxvtkbaseview = mwxvtk3Dbaseview_Clipping3D;}
+               if (mvtk2Dbaseview!=NULL)                               { 
+                       wxvtkbaseview = mvtk2Dbaseview;                 
+               }
+               if (mvtkmpr2Dview_X!=NULL){ 
+                       wxvtkbaseview = mvtkmpr2Dview_X;
+               }
+               if (mvtkmpr2Dview_Y!=NULL){ 
+                       wxvtkbaseview = mvtkmpr2Dview_Y;
+               }
+               if (mvtkmpr2Dview_Z!=NULL){ 
+                       wxvtkbaseview = mvtkmpr2Dview_Z;                
+               }
+               if (mvtkplane2Dview!=NULL){
+                       wxvtkbaseview = mvtkplane2Dview;                
+               }
+               if (mwxsphereview!=NULL){ 
+                       wxvtkbaseview = mwxsphereview;
+               }
+               if (mwxvtk3Dbaseview_Clipping3D!=NULL)  { 
+                       wxvtkbaseview = mwxvtk3Dbaseview_Clipping3D;
+               }
                return wxvtkbaseview   ;
        }