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