]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk3DBaseView.cxx
Feature #1606 Add a new entry to ColorLayerImageView to select the fitting mode betwe...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxVtk3DBaseView.cxx
index e601235c1bd8365c71b97f8b75ada2c789334f05..58ba013414d29a90420714c7d02242f92e87cd0f 100644 (file)
@@ -2,7 +2,9 @@
 
 #include "vtkInteractorStyleBaseView3D.h"
 
-
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
 wxVtk3DBaseView::wxVtk3DBaseView(wxWindow *parent)
 :wxVtkBaseView( parent )
 {
@@ -14,9 +16,14 @@ wxVtk3DBaseView::wxVtk3DBaseView(wxWindow *parent)
 //-------------------------------------------------------------------
 wxVtk3DBaseView::~wxVtk3DBaseView()
 {
-       if (_aCamera!=NULL)     { _aCamera              -> Delete(); }
-       if (_aRenderer!=NULL)   { _aRenderer    -> Delete(); }
-       if (_renWin!=NULL)      { _renWin               -> Delete(); }
+
+       if (_aCamera!=NULL)     { _aCamera              -> Delete(); _aCamera=NULL;}
+       if (_aRenderer!=NULL)   { _aRenderer    -> Delete(); _aRenderer=NULL;}
+       if (_renWin!=NULL)      { 
+               if(_renWin->GetReferenceCount()==0){
+                       _renWin         -> Delete(); _renWin=NULL;
+               }
+       }
 }
 //-------------------------------------------------------------------
 vtkCamera* wxVtk3DBaseView::GetCamera()
@@ -40,11 +47,50 @@ void wxVtk3DBaseView::Refresh()
        vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
        vri->vtkRenderWindowInteractor::Render();
 }
+
+
+//-------------------------------------------------------------------
+void wxVtk3DBaseView::SetStereo(int type)
+{
+       //EED 02/06/2012  
+       printf("EED wxVtk3DBaseView::SetStereo  start\n");
+
+       if (_renWin!=NULL)
+       {
+               printf("EED wxVtk3DBaseView::SetStereo  2\n");
+               if (type==0)
+               {
+                       _renWin->SetStereoRender(0); // OFF
+               } else {
+                       _renWin->SetStereoRender(1); // ON
+                       _renWin->SetStereoCapableWindow(1);
+                       _renWin->SetAnaglyphColorMask(4,3);
+                       _renWin->SetAnaglyphColorSaturation(0.65);
+               
+                       // VTK_STEREO_CRYSTAL_EYES 1
+                       // VTK_STEREO_RED_BLUE     2
+                       // VTK_STEREO_INTERLACED   3
+                       // VTK_STEREO_LEFT         4
+                       // VTK_STEREO_RIGHT        5
+                       // VTK_STEREO_DRESDEN      6
+                       // VTK_STEREO_ANAGLYPH     7
+                       // VTK_STEREO_CHECKERBOARD 8            
+                       _renWin->SetStereoType(type);      
+               
+               } // if type
+       } // _renWin
+       printf("EED wxVtk3DBaseView::SetStereo  end\n");
+
+}
+
+
 //-------------------------------------------------------------------
 void wxVtk3DBaseView::Configure()
 {
+       printf("EED wxVtk3DBaseView::Configure A\n");
        if (_configure==false)
        {
+       printf("EED wxVtk3DBaseView::Configure B\n");
                _configure=true;
                //wxVtkBaseView::Configure();
                _aRenderer      = vtkRenderer::New();
@@ -55,17 +101,10 @@ void wxVtk3DBaseView::Configure()
                _aRenderer->SetBackground( 0.33 , 0.33 , 0.33 );
                _aRenderer->SetBackground2( 0.66 , 0.66 , 0.66 );
                
+               SetStereo(0);
                
-//       _renWin->SetStereoCapableWindow(1);
-// //      //renderwindow->SetStereoTypeToCrystalEyes();  
-//       _renWin->SetStereoTypeToRedBlue();
-//       _renWin->SetStereoRender(1);
-
                GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin);
 
-
-// EED Borrame
-//             vtkInteractorStyle3DMaracas *interactorStyle3DMaracas = vtkInteractorStyle3DMaracas::New(); 
                vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New(); 
 
                SetInteractorStyleBaseView( interactorStyleBaseView3D );
@@ -73,12 +112,6 @@ void wxVtk3DBaseView::Configure()
                GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
                interactorStyleBaseView3D->SetwxVtkBaseView(this);      
 
-
-/* EED Borrame
-  vtkInteractorStyleSwitch *iss = dynamic_cast<vtkInteractorStyleSwitch*>(_iren->GetInteractorStyle());
-  iss->SetCurrentStyleToTrackballCamera();
-*/
-
                // It is convenient to create an initial view of the data. The
                // FocalPoint and Position form a vector direction. Later on
                // (ResetCamera() method) this vector is used to position the camera