]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk3DBaseView.cxx
*** empty log 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
55 //       _renWin->SetStereoCapableWindow(1);
56 // //      //renderwindow->SetStereoTypeToCrystalEyes();  
57 //       _renWin->SetStereoTypeToRedBlue();
58 //       _renWin->SetStereoRender(1);
59
60                 GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin);
61
62
63 // EED Borrame
64 //              vtkInteractorStyle3DMaracas *interactorStyle3DMaracas = vtkInteractorStyle3DMaracas::New(); 
65                 vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New(); 
66
67                 SetInteractorStyleBaseView( interactorStyleBaseView3D );
68                 interactorStyleBaseView3D->SetInteractor (  GetWxVTKRenderWindowInteractor() );
69                 GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
70                 interactorStyleBaseView3D->SetwxVtkBaseView(this);      
71
72
73 /* EED Borrame
74   vtkInteractorStyleSwitch *iss = dynamic_cast<vtkInteractorStyleSwitch*>(_iren->GetInteractorStyle());
75   iss->SetCurrentStyleToTrackballCamera();
76 */
77
78                 // It is convenient to create an initial view of the data. The
79                 // FocalPoint and Position form a vector direction. Later on
80                 // (ResetCamera() method) this vector is used to position the camera
81                 // to look at the data in this direction.
82                 _aCamera = vtkCamera::New();
83
84 //EED 17Avril2009       
85 /*
86                 _aCamera->SetViewUp (0, 0, -1);
87                 _aCamera->SetPosition (0, 1, 0);
88  */
89                 _aCamera->SetViewUp (0, 1, 0);
90                 _aCamera->SetPosition (0, 0, 1);
91                 
92                 _aCamera->SetFocalPoint (0, 0, 0);
93                 _aCamera->ComputeViewPlaneNormal();
94
95         }
96 }
97 //-------------------------------------------------------------------
98 //EED 27 sep 2006
99 void wxVtk3DBaseView::GetSpacing(double spc[3])
100 {
101         spc[0]=1;
102         spc[1]=1;
103         spc[2]=1;
104 }