]> Creatis software - bbtk.git/blobdiff - packages/wxvtk/src/bbwxvtkViewer2D.cxx
*** empty log message ***
[bbtk.git] / packages / wxvtk / src / bbwxvtkViewer2D.cxx
index 6cf958807a7ac6f646a7b24f40b9566e7b7631a2..f9e1e1326f7c6c3f0b9a95bc3738f78e7ce2547b 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbwxvtkViewer2D.cxx,v $
   Language:  C++
-  Date:      $Date: 2008/06/26 07:37:18 $
-  Version:   $Revision: 1.12 $
+  Date:      $Date: 2008/07/03 13:59:37 $
+  Version:   $Revision: 1.15 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -54,13 +54,13 @@ namespace bbwxvtk
     wxvtkrenderwindowinteractor->UseCaptureMouseOn();  
 
     imageViewer        = vtkImageViewer2::New();
-       imageViewer->SetSlice( 1 );
+    imageViewer->SetSlice( 1 );
     imageViewer->SetupInteractor ( wxvtkrenderwindowinteractor );
     
     mDefaultImage = vtkImageData::New();
     int dim[3];
     dim[0] = dim[1] = 32 ; 
-       dim[2] = 2; 
+    dim[2] = 2; 
     mDefaultImage->SetDimensions ( dim );
     mDefaultImage->SetSpacing(1,1,1);
     mDefaultImage->SetExtent(0,dim[0]-1,0,dim[1]-1,0,dim[2]-1);
@@ -84,11 +84,17 @@ namespace bbwxvtk
     mUpdateCamera = true;
 
     wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
-    sizer      -> Add( wxvtkrenderwindowinteractor , 1, wxEXPAND, 0);
-    panel      -> SetSizer(sizer);
-    panel      -> SetAutoLayout(true);
-    panel      -> Layout();
-    
+    sizer-> Add( wxvtkrenderwindowinteractor , 1, wxEXPAND, 0);
+    panel-> SetSizer(sizer);
+    panel-> SetAutoLayout(true);
+    panel-> Layout();
+
+
+    wxvtkrenderwindowinteractor->Refresh();
+    wxvtkrenderwindowinteractor->Render();
+    imageViewer->GetRenderer()->ResetCameraClippingRange();
+
+  
   }
   //-------------------------------------------------------------------------
   
@@ -153,9 +159,9 @@ namespace bbwxvtk
        
        vtkCamera *camera = imageViewer->GetRenderer()->GetActiveCamera();
 
-       camera->SetViewUp ( spx*0, -spy*1, spz*0 );
-       camera->SetPosition( spx*(x1+x2)/2, spy*(y1+y2)/2, -spz*10000000 ); 
-       camera->SetFocalPoint   ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0 ); 
+       camera->SetViewUp    ( spx*0,         -spy*1,        spz*0 );
+       camera->SetPosition  ( spx*(x1+x2)/2, spy*(y1+y2)/2, -spz*10000000 ); 
+       camera->SetFocalPoint( spx*(x1+x2)/2, spy*(y1+y2)/2, spz*0 ); 
 
        camera->ComputeViewPlaneNormal();
        camera->SetParallelScale(  spx*(x2-x1)/2.0 );
@@ -165,8 +171,8 @@ namespace bbwxvtk
       }
   
     //  std::cout << "OW = "<< mBox->bbGetWindow() << std::endl;
-    //    std::cout << "CW = "<< mBox->bbGetContainingWindow() << std::endl;
-    //    std::cout << "Sh = "<< mBox->bbIsShown() << std::endl;
+    //  std::cout << "CW = "<< mBox->bbGetContainingWindow() << std::endl;
+    //  std::cout << "Sh = "<< mBox->bbIsShown() << std::endl;
     
 
 
@@ -187,6 +193,10 @@ namespace bbwxvtk
                if (z<ext[4]) { z=ext[4]; }
                if (z>ext[5]) { z=ext[5]; }
 
+               wxvtkrenderwindowinteractor->Update();
+               wxvtkrenderwindowinteractor->Render();
+               imageViewer->GetRenderer()->ResetCameraClippingRange();
+
 
        #if (VTK_MAJOR_VERSION >= 5)
                imageViewer->SetSlice( z );
@@ -195,10 +205,7 @@ namespace bbwxvtk
        #endif
 
                //imageViewer->UpdateDisplayExtent();
-       //      wxvtkrenderwindowinteractor->Render();
-               imageViewer->GetRenderer()->ResetCameraClippingRange();
-  }
-
+  } 
 
 
 }
@@ -231,7 +238,7 @@ namespace bbwxvtk
 
     ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView();
     bbSetOutputOut( bbGetInputSlice() );
-       bbSetOutputRenderer( ((Viewer2DWidget*)bbGetOutputWidget())->GetRenderer() );
+    bbSetOutputRenderer( ((Viewer2DWidget*)bbGetOutputWidget())->GetRenderer() );
        
   }
   
@@ -262,9 +269,16 @@ namespace bbwxvtk
   // when window is shown
   void  Viewer2D::bbUserOnShow()
   {
-    ((Viewer2DWidget*)bbGetOutputWidget())->Refresh();
+
+#if defined(_WIN32)
+//    ((Viewer2DWidget*)bbGetOutputWidget())->Refresh();
+    ((Viewer2DWidget*)bbGetOutputWidget())->Update();
+    ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView();
+#endif
+    /*
     ((Viewer2DWidget*)bbGetOutputWidget())->Update();
     ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView();
+    */
   }