wxVtk3DBaseView.cxx
Go to the documentation of this file.00001 #include "wxVtk3DBaseView.h"
00002
00003 #include "vtkInteractorStyleBaseView3D.h"
00004
00005
00006 wxVtk3DBaseView::wxVtk3DBaseView(wxWindow *parent)
00007 :wxVtkBaseView( parent )
00008 {
00009 _configure = false;
00010 _aRenderer = NULL;
00011 _renWin = NULL;
00012 _aCamera = NULL;
00013 }
00014
00015 wxVtk3DBaseView::~wxVtk3DBaseView()
00016 {
00017
00018 if (_aCamera!=NULL) { _aCamera -> Delete(); _aCamera=NULL;}
00019 if (_aRenderer!=NULL) { _aRenderer -> Delete(); _aRenderer=NULL;}
00020 if (_renWin!=NULL) {
00021 if(_renWin->GetReferenceCount()==0){
00022 _renWin -> Delete(); _renWin=NULL;
00023 }
00024 }
00025 }
00026
00027 vtkCamera* wxVtk3DBaseView::GetCamera()
00028 {
00029 return _aCamera;
00030 }
00031
00032 vtkRenderer* wxVtk3DBaseView::GetRenderer()
00033 {
00034 return _aRenderer;
00035 }
00036
00037 vtkRenderWindow* wxVtk3DBaseView::GetRenWin()
00038 {
00039 return _renWin;
00040 }
00041
00042 void wxVtk3DBaseView::Refresh()
00043 {
00044
00045 vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
00046 vri->vtkRenderWindowInteractor::Render();
00047 }
00048
00049 void wxVtk3DBaseView::Configure()
00050 {
00051
00052 if (_configure==false)
00053 {
00054
00055 _configure=true;
00056
00057 _aRenderer = vtkRenderer::New();
00058 _renWin = vtkRenderWindow::New();
00059 _renWin->AddRenderer(_aRenderer);
00060
00061 _aRenderer->GradientBackgroundOn();
00062 _aRenderer->SetBackground( 0.33 , 0.33 , 0.33 );
00063 _aRenderer->SetBackground2( 0.66 , 0.66 , 0.66 );
00064
00065
00066
00067
00068
00069
00070
00071 GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin);
00072
00073 vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New();
00074
00075 SetInteractorStyleBaseView( interactorStyleBaseView3D );
00076 interactorStyleBaseView3D->SetInteractor ( GetWxVTKRenderWindowInteractor() );
00077 GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
00078 interactorStyleBaseView3D->SetwxVtkBaseView(this);
00079
00080
00081
00082
00083
00084 _aCamera = vtkCamera::New();
00085
00086
00087
00088
00089
00090
00091 _aCamera->SetViewUp (0, 1, 0);
00092 _aCamera->SetPosition (0, 0, 1);
00093
00094 _aCamera->SetFocalPoint (0, 0, 0);
00095 _aCamera->ComputeViewPlaneNormal();
00096
00097 }
00098 }
00099
00100
00101 void wxVtk3DBaseView::GetSpacing(double spc[3])
00102 {
00103 spc[0]=1;
00104 spc[1]=1;
00105 spc[2]=1;
00106 }
00107