]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk3DBaseView.cxx
change SUBDIRS (deprecate functionality) to ADD_SUBDIRECTORY
[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                 GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin);
74
75                 vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New(); 
76
77                 SetInteractorStyleBaseView( interactorStyleBaseView3D );
78                 interactorStyleBaseView3D->SetInteractor (  GetWxVTKRenderWindowInteractor() );
79                 GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
80                 interactorStyleBaseView3D->SetwxVtkBaseView(this);      
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