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