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(); }
18 if (_aRenderer!=NULL) { _aRenderer -> Delete(); }
19 if (_renWin!=NULL) { _renWin -> Delete(); }
21 //-------------------------------------------------------------------
22 vtkCamera* wxVtk3DBaseView::GetCamera()
26 //-------------------------------------------------------------------
27 vtkRenderer* wxVtk3DBaseView::GetRenderer() // virtual
31 //-------------------------------------------------------------------
32 vtkRenderWindow* wxVtk3DBaseView::GetRenWin() // virtual
36 //-------------------------------------------------------------------
37 void wxVtk3DBaseView::Refresh()
40 vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
41 vri->vtkRenderWindowInteractor::Render();
43 //-------------------------------------------------------------------
44 void wxVtk3DBaseView::Configure()
46 if (_configure==false)
49 //wxVtkBaseView::Configure();
50 _aRenderer = vtkRenderer::New();
51 _renWin = vtkRenderWindow::New();
52 _renWin->AddRenderer(_aRenderer);
55 // _renWin->SetStereoCapableWindow(1);
56 // // //renderwindow->SetStereoTypeToCrystalEyes();
57 // _renWin->SetStereoTypeToRedBlue();
58 // _renWin->SetStereoRender(1);
60 GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin);
64 // vtkInteractorStyle3DMaracas *interactorStyle3DMaracas = vtkInteractorStyle3DMaracas::New();
65 vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New();
67 SetInteractorStyleBaseView( interactorStyleBaseView3D );
68 interactorStyleBaseView3D->SetInteractor ( GetWxVTKRenderWindowInteractor() );
69 GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
70 interactorStyleBaseView3D->SetwxVtkBaseView(this);
74 vtkInteractorStyleSwitch *iss = dynamic_cast<vtkInteractorStyleSwitch*>(_iren->GetInteractorStyle());
75 iss->SetCurrentStyleToTrackballCamera();
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();
86 _aCamera->SetViewUp (0, 0, -1);
87 _aCamera->SetPosition (0, 1, 0);
89 _aCamera->SetViewUp (0, 1, 0);
90 _aCamera->SetPosition (0, 0, 1);
92 _aCamera->SetFocalPoint (0, 0, 0);
93 _aCamera->ComputeViewPlaneNormal();
97 //-------------------------------------------------------------------
99 void wxVtk3DBaseView::GetSpacing(double spc[3])