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);
75 // vtkInteractorStyle3DMaracas *interactorStyle3DMaracas = vtkInteractorStyle3DMaracas::New();
76 vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New();
78 SetInteractorStyleBaseView( interactorStyleBaseView3D );
79 interactorStyleBaseView3D->SetInteractor ( GetWxVTKRenderWindowInteractor() );
80 GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
81 interactorStyleBaseView3D->SetwxVtkBaseView(this);
85 vtkInteractorStyleSwitch *iss = dynamic_cast<vtkInteractorStyleSwitch*>(_iren->GetInteractorStyle());
86 iss->SetCurrentStyleToTrackballCamera();
89 // It is convenient to create an initial view of the data. The
90 // FocalPoint and Position form a vector direction. Later on
91 // (ResetCamera() method) this vector is used to position the camera
92 // to look at the data in this direction.
93 _aCamera = vtkCamera::New();
97 _aCamera->SetViewUp (0, 0, -1);
98 _aCamera->SetPosition (0, 1, 0);
100 _aCamera->SetViewUp (0, 1, 0);
101 _aCamera->SetPosition (0, 0, 1);
103 _aCamera->SetFocalPoint (0, 0, 0);
104 _aCamera->ComputeViewPlaneNormal();
108 //-------------------------------------------------------------------
110 void wxVtk3DBaseView::GetSpacing(double spc[3])