1 #include "wxVtk3DBaseView.h"
3 #include "vtkInteractorStyleBaseView3D.h"
6 wxVtk3DBaseView::wxVtk3DBaseView(wxWindow *parent)
7 :wxVtkBaseView( parent )
14 //-------------------------------------------------------------------
15 wxVtk3DBaseView::~wxVtk3DBaseView()
17 if (_aCamera!=NULL) { _aCamera -> Delete(); _aCamera=NULL;}
18 if (_aRenderer!=NULL) { _aRenderer -> Delete(); _aRenderer=NULL;}
20 if(_renWin->GetReferenceCount()==0){
21 _renWin -> Delete(); _renWin=NULL;
25 //-------------------------------------------------------------------
26 vtkCamera* wxVtk3DBaseView::GetCamera()
30 //-------------------------------------------------------------------
31 vtkRenderer* wxVtk3DBaseView::GetRenderer() // virtual
35 //-------------------------------------------------------------------
36 vtkRenderWindow* wxVtk3DBaseView::GetRenWin() // virtual
40 //-------------------------------------------------------------------
41 void wxVtk3DBaseView::Refresh()
44 vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
45 vri->vtkRenderWindowInteractor::Render();
47 //-------------------------------------------------------------------
48 void wxVtk3DBaseView::Configure()
50 if (_configure==false)
53 //wxVtkBaseView::Configure();
54 _aRenderer = vtkRenderer::New();
55 _renWin = vtkRenderWindow::New();
56 _renWin->AddRenderer(_aRenderer);
58 _aRenderer->GradientBackgroundOn();
59 _aRenderer->SetBackground( 0.33 , 0.33 , 0.33 );
60 _aRenderer->SetBackground2( 0.66 , 0.66 , 0.66 );
63 // _renWin->SetStereoCapableWindow(1);
64 // // //renderwindow->SetStereoTypeToCrystalEyes();
65 // _renWin->SetStereoTypeToRedBlue();
66 // _renWin->SetStereoRender(1);
68 GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin);
72 // vtkInteractorStyle3DMaracas *interactorStyle3DMaracas = vtkInteractorStyle3DMaracas::New();
73 vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New();
75 SetInteractorStyleBaseView( interactorStyleBaseView3D );
76 interactorStyleBaseView3D->SetInteractor ( GetWxVTKRenderWindowInteractor() );
77 GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
78 interactorStyleBaseView3D->SetwxVtkBaseView(this);
82 vtkInteractorStyleSwitch *iss = dynamic_cast<vtkInteractorStyleSwitch*>(_iren->GetInteractorStyle());
83 iss->SetCurrentStyleToTrackballCamera();
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();
94 _aCamera->SetViewUp (0, 0, -1);
95 _aCamera->SetPosition (0, 1, 0);
97 _aCamera->SetViewUp (0, 1, 0);
98 _aCamera->SetPosition (0, 0, 1);
100 _aCamera->SetFocalPoint (0, 0, 0);
101 _aCamera->ComputeViewPlaneNormal();
105 //-------------------------------------------------------------------
107 void wxVtk3DBaseView::GetSpacing(double spc[3])