#include "wxVtk3DBaseView.h" #include "vtkInteractorStyleBaseView3D.h" #ifdef _DEBUG #define new DEBUG_NEW #endif wxVtk3DBaseView::wxVtk3DBaseView(wxWindow *parent) :wxVtkBaseView( parent ) { _configure = false; _aRenderer = NULL; _renWin = NULL; _aCamera = NULL; } //------------------------------------------------------------------- wxVtk3DBaseView::~wxVtk3DBaseView() { if (_aCamera!=NULL) { _aCamera -> Delete(); _aCamera=NULL;} if (_aRenderer!=NULL) { _aRenderer -> Delete(); _aRenderer=NULL;} if (_renWin!=NULL) { if(_renWin->GetReferenceCount()==0){ _renWin -> Delete(); _renWin=NULL; } } } //------------------------------------------------------------------- vtkCamera* wxVtk3DBaseView::GetCamera() { return _aCamera; } //------------------------------------------------------------------- vtkRenderer* wxVtk3DBaseView::GetRenderer() // virtual { return _aRenderer; } //------------------------------------------------------------------- vtkRenderWindow* wxVtk3DBaseView::GetRenWin() // virtual { return _renWin; } //------------------------------------------------------------------- void wxVtk3DBaseView::Refresh() { // _renWin->Render(); vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor(); vri->vtkRenderWindowInteractor::Render(); } //------------------------------------------------------------------- void wxVtk3DBaseView::Configure() { //printf("EED wxVtk3DBaseView::Configure A\n"); if (_configure==false) { //printf("EED wxVtk3DBaseView::Configure B\n"); _configure=true; //wxVtkBaseView::Configure(); _aRenderer = vtkRenderer::New(); _renWin = vtkRenderWindow::New(); _renWin->AddRenderer(_aRenderer); _aRenderer->GradientBackgroundOn(); _aRenderer->SetBackground( 0.33 , 0.33 , 0.33 ); _aRenderer->SetBackground2( 0.66 , 0.66 , 0.66 ); // _renWin->SetStereoCapableWindow(1); // // //renderwindow->SetStereoTypeToCrystalEyes(); // _renWin->SetStereoTypeToRedBlue(); // _renWin->SetStereoRender(1); GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin); vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New(); SetInteractorStyleBaseView( interactorStyleBaseView3D ); interactorStyleBaseView3D->SetInteractor ( GetWxVTKRenderWindowInteractor() ); GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D ); interactorStyleBaseView3D->SetwxVtkBaseView(this); // It is convenient to create an initial view of the data. The // FocalPoint and Position form a vector direction. Later on // (ResetCamera() method) this vector is used to position the camera // to look at the data in this direction. _aCamera = vtkCamera::New(); //EED 17Avril2009 /* _aCamera->SetViewUp (0, 0, -1); _aCamera->SetPosition (0, 1, 0); */ _aCamera->SetViewUp (0, 1, 0); _aCamera->SetPosition (0, 0, 1); _aCamera->SetFocalPoint (0, 0, 0); _aCamera->ComputeViewPlaneNormal(); } } //------------------------------------------------------------------- //EED 27 sep 2006 void wxVtk3DBaseView::GetSpacing(double spc[3]) { spc[0]=1; spc[1]=1; spc[2]=1; }