]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk3DBaseView.cxx
ecfae840fe818c084eaeddc62614cd2546649cb2
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxVtk3DBaseView.cxx
1 #include "wxVtk3DBaseView.h"
2
3 #include "vtkInteractorStyleBaseView3D.h"
4
5 #ifdef _DEBUG
6 #define new DEBUG_NEW
7 #endif
8 wxVtk3DBaseView::wxVtk3DBaseView(wxWindow *parent)
9 :wxVtkBaseView( parent )
10 {
11         _configure      = false;
12         _aRenderer      = NULL;
13         _renWin         = NULL;
14         _aCamera        = NULL;
15 }
16 //-------------------------------------------------------------------
17 wxVtk3DBaseView::~wxVtk3DBaseView()
18 {
19
20         if (_aCamera!=NULL)     { _aCamera              -> Delete(); _aCamera=NULL;}
21         if (_aRenderer!=NULL)   { _aRenderer    -> Delete(); _aRenderer=NULL;}
22         if (_renWin!=NULL)      { 
23                 if(_renWin->GetReferenceCount()==0){
24                         _renWin         -> Delete(); _renWin=NULL;
25                 }
26         }
27 }
28 //-------------------------------------------------------------------
29 vtkCamera* wxVtk3DBaseView::GetCamera()
30 {
31         return _aCamera;
32 }
33 //-------------------------------------------------------------------
34 vtkRenderer* wxVtk3DBaseView::GetRenderer()  // virtual
35 {
36         return _aRenderer;
37 }
38 //-------------------------------------------------------------------
39 vtkRenderWindow* wxVtk3DBaseView::GetRenWin()  // virtual
40 {
41         return _renWin;
42 }
43 //-------------------------------------------------------------------
44 void wxVtk3DBaseView::Refresh()
45 {
46 //      _renWin->Render();
47         vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
48         vri->vtkRenderWindowInteractor::Render();
49 }
50 //-------------------------------------------------------------------
51 void wxVtk3DBaseView::Configure()
52 {
53         printf("EED wxVtk3DBaseView::Configure A\n");
54         if (_configure==false)
55         {
56         printf("EED wxVtk3DBaseView::Configure B\n");
57                 _configure=true;
58                 //wxVtkBaseView::Configure();
59                 _aRenderer      = vtkRenderer::New();
60                 _renWin         = vtkRenderWindow::New();
61                 _renWin->AddRenderer(_aRenderer);
62
63                 _aRenderer->GradientBackgroundOn();
64                 _aRenderer->SetBackground( 0.33 , 0.33 , 0.33 );
65                 _aRenderer->SetBackground2( 0.66 , 0.66 , 0.66 );
66                 
67                 
68 //       _renWin->SetStereoCapableWindow(1);
69 // //      //renderwindow->SetStereoTypeToCrystalEyes();  
70 //       _renWin->SetStereoTypeToRedBlue();
71 //       _renWin->SetStereoRender(1);
72
73 //EED 19/10/2011 OK  EED stereo 
74 //              _renWin->SetStereoCapableWindow(1);
75 //              _renWin->SetAnaglyphColorMask(4,3);
76 //              _renWin->SetAnaglyphColorSaturation(0.65);
77 //              _renWin->SetStereoTypeToAnaglyph();         // OK 1.
78 //              _renWin->SetStereoRender(1);
79                 printf("EED wxVtk3DBaseView::Configure  test Stereo ...\n");
80                 
81
82                 GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin);
83
84                 vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New(); 
85
86                 SetInteractorStyleBaseView( interactorStyleBaseView3D );
87                 interactorStyleBaseView3D->SetInteractor (  GetWxVTKRenderWindowInteractor() );
88                 GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
89                 interactorStyleBaseView3D->SetwxVtkBaseView(this);      
90
91                 // It is convenient to create an initial view of the data. The
92                 // FocalPoint and Position form a vector direction. Later on
93                 // (ResetCamera() method) this vector is used to position the camera
94                 // to look at the data in this direction.
95                 _aCamera = vtkCamera::New();
96
97 //EED 17Avril2009       
98 /*
99                 _aCamera->SetViewUp (0, 0, -1);
100                 _aCamera->SetPosition (0, 1, 0);
101  */
102                 _aCamera->SetViewUp (0, 1, 0);
103                 _aCamera->SetPosition (0, 0, 1);
104                 
105                 _aCamera->SetFocalPoint (0, 0, 0);
106                 _aCamera->ComputeViewPlaneNormal();
107
108         }
109 }
110 //-------------------------------------------------------------------
111 //EED 27 sep 2006
112 void wxVtk3DBaseView::GetSpacing(double spc[3])
113 {
114         spc[0]=1;
115         spc[1]=1;
116         spc[2]=1;
117 }
118