1 #include "wxVtk3DBaseView.h"
3 #include "vtkInteractorStyleBaseView3D.h"
6 wxVtk3DBaseView::wxVtk3DBaseView(wxWindow *parent)
7 :wxVtkBaseView( parent )
14 //-------------------------------------------------------------------
15 wxVtk3DBaseView::~wxVtk3DBaseView()
18 if (_aCamera!=NULL) { _aCamera -> Delete(); _aCamera=NULL;}
19 if (_aRenderer!=NULL) { _aRenderer -> Delete(); _aRenderer=NULL;}
21 if(_renWin->GetReferenceCount()==0){
22 _renWin -> Delete(); _renWin=NULL;
26 //-------------------------------------------------------------------
27 vtkCamera* wxVtk3DBaseView::GetCamera()
31 //-------------------------------------------------------------------
32 vtkRenderer* wxVtk3DBaseView::GetRenderer() // virtual
36 //-------------------------------------------------------------------
37 vtkRenderWindow* wxVtk3DBaseView::GetRenWin() // virtual
41 //-------------------------------------------------------------------
42 void wxVtk3DBaseView::Refresh()
45 vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
46 vri->vtkRenderWindowInteractor::Render();
48 //-------------------------------------------------------------------
49 void wxVtk3DBaseView::Configure()
51 //printf("EED wxVtk3DBaseView::Configure A\n");
52 if (_configure==false)
54 //printf("EED wxVtk3DBaseView::Configure B\n");
56 //wxVtkBaseView::Configure();
57 _aRenderer = vtkRenderer::New();
58 _renWin = vtkRenderWindow::New();
59 _renWin->AddRenderer(_aRenderer);
61 _aRenderer->GradientBackgroundOn();
62 _aRenderer->SetBackground( 0.33 , 0.33 , 0.33 );
63 _aRenderer->SetBackground2( 0.66 , 0.66 , 0.66 );
66 // _renWin->SetStereoCapableWindow(1);
67 // // //renderwindow->SetStereoTypeToCrystalEyes();
68 // _renWin->SetStereoTypeToRedBlue();
69 // _renWin->SetStereoRender(1);
71 GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin);
73 vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New();
75 SetInteractorStyleBaseView( interactorStyleBaseView3D );
76 interactorStyleBaseView3D->SetInteractor ( GetWxVTKRenderWindowInteractor() );
77 GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
78 interactorStyleBaseView3D->SetwxVtkBaseView(this);
80 // It is convenient to create an initial view of the data. The
81 // FocalPoint and Position form a vector direction. Later on
82 // (ResetCamera() method) this vector is used to position the camera
83 // to look at the data in this direction.
84 _aCamera = vtkCamera::New();
88 _aCamera->SetViewUp (0, 0, -1);
89 _aCamera->SetPosition (0, 1, 0);
91 _aCamera->SetViewUp (0, 1, 0);
92 _aCamera->SetPosition (0, 0, 1);
94 _aCamera->SetFocalPoint (0, 0, 0);
95 _aCamera->ComputeViewPlaneNormal();
99 //-------------------------------------------------------------------
101 void wxVtk3DBaseView::GetSpacing(double spc[3])