1 #include "wxVtk3DBaseView.h"
3 #include "vtkInteractorStyleBaseView3D.h"
8 wxVtk3DBaseView::wxVtk3DBaseView(wxWindow *parent)
9 :wxVtkBaseView( parent )
16 //-------------------------------------------------------------------
17 wxVtk3DBaseView::~wxVtk3DBaseView()
20 if (_aCamera!=NULL) { _aCamera -> Delete(); _aCamera=NULL;}
21 if (_aRenderer!=NULL) { _aRenderer -> Delete(); _aRenderer=NULL;}
23 if(_renWin->GetReferenceCount()==0){
24 _renWin -> Delete(); _renWin=NULL;
28 //-------------------------------------------------------------------
29 vtkCamera* wxVtk3DBaseView::GetCamera()
33 //-------------------------------------------------------------------
34 vtkRenderer* wxVtk3DBaseView::GetRenderer() // virtual
38 //-------------------------------------------------------------------
39 vtkRenderWindow* wxVtk3DBaseView::GetRenWin() // virtual
43 //-------------------------------------------------------------------
44 void wxVtk3DBaseView::Refresh()
47 vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
48 vri->vtkRenderWindowInteractor::Render();
50 //-------------------------------------------------------------------
51 void wxVtk3DBaseView::Configure()
53 //printf("EED wxVtk3DBaseView::Configure A\n");
54 if (_configure==false)
56 //printf("EED wxVtk3DBaseView::Configure B\n");
58 //wxVtkBaseView::Configure();
59 _aRenderer = vtkRenderer::New();
60 _renWin = vtkRenderWindow::New();
61 _renWin->AddRenderer(_aRenderer);
63 _aRenderer->GradientBackgroundOn();
64 _aRenderer->SetBackground( 0.33 , 0.33 , 0.33 );
65 _aRenderer->SetBackground2( 0.66 , 0.66 , 0.66 );
68 // _renWin->SetStereoCapableWindow(1);
69 // // //renderwindow->SetStereoTypeToCrystalEyes();
70 // _renWin->SetStereoTypeToRedBlue();
71 // _renWin->SetStereoRender(1);
73 GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin);
75 vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New();
77 SetInteractorStyleBaseView( interactorStyleBaseView3D );
78 interactorStyleBaseView3D->SetInteractor ( GetWxVTKRenderWindowInteractor() );
79 GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
80 interactorStyleBaseView3D->SetwxVtkBaseView(this);
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();
90 _aCamera->SetViewUp (0, 0, -1);
91 _aCamera->SetPosition (0, 1, 0);
93 _aCamera->SetViewUp (0, 1, 0);
94 _aCamera->SetPosition (0, 0, 1);
96 _aCamera->SetFocalPoint (0, 0, 0);
97 _aCamera->ComputeViewPlaneNormal();
101 //-------------------------------------------------------------------
103 void wxVtk3DBaseView::GetSpacing(double spc[3])