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