wxVtkBaseView.cxx

Go to the documentation of this file.
00001 
00002 
00003 //#include "vtkInteractorStyleBaseView.h"
00004 
00005 #include "wxVtkBaseView.h"
00006 #include "wxVtk2DBaseView.h"
00007 #include "wxVTKRenderWindowInteractorPlus.h"
00008 
00009 
00010 
00011 wxVtkBaseView::wxVtkBaseView()
00012 {
00013         _parent                         = NULL;
00014         _iren                           = NULL;
00015         _interactorStyle        = NULL;
00016 }
00017 
00018 //-------------------------------------------------------------------
00019 
00020 wxVtkBaseView::wxVtkBaseView(wxWindow *parent)
00021 {
00022         _parent                         = parent;
00023         _iren                           = (wxVTKRenderWindowInteractor*)new wxVTKRenderWindowInteractorPlus(_parent,this);
00024 //      _iren->UseCaptureMouseOn();
00025 //      _iren                           = new wxVTKRenderWindowInteractor(_parent,-1);
00026         _interactorStyle        = NULL;
00027 
00028 
00029 }
00030 
00031 //-------------------------------------------------------------------
00032 wxVtkBaseView::~wxVtkBaseView()
00033 {
00034         _iren -> Delete();
00035         //_iren=NULL;
00036 }
00037 //-------------------------------------------------------------------
00038 wxVTKRenderWindowInteractor* wxVtkBaseView::GetWxVTKRenderWindowInteractor() throw (char*)
00039 {
00040 
00041         if(_iren==NULL){
00042                 throw "wxVtkBaseView::GetWxVTKRenderWindowInteractor() _iren wxVTKRenderWindowInteractorPlus =NULL";
00043         }
00044    return _iren;
00045 }
00046 //-------------------------------------------------------------------
00047 void wxVtkBaseView::Configure()  // virtual 
00048 {
00049 }
00050 //-------------------------------------------------------------------
00051 void wxVtkBaseView::Refresh()  // virtual 
00052 {
00053 // EED 10 Oct 2007
00054 
00055         #if defined(WIN32)
00056                 _iren->Refresh(false);
00057         #else
00058         
00059 //EED 01Avril2009
00060 //              _iren->Render();        
00061         vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
00062         vri->vtkRenderWindowInteractor::Render();
00063         
00064         
00065                 //_iren->Refresh();
00066         #endif
00067 
00068 }
00069 //-------------------------------------------------------------------
00070 void wxVtkBaseView::RefreshView()  // virtual 
00071 {
00072 // EED 10 Oct 2007
00073 
00074         #if defined(WIN32)
00075                 GetRenWin()->Render();
00076         #else
00077                 //GetRenWin()->Render();
00078         #endif
00079 
00080 }
00081 //---------------------------------------------------------------------------
00082 vtkRenderer* wxVtkBaseView::GetRenderer()       // virtual 
00083 {
00084         return NULL;
00085 }
00086 //---------------------------------------------------------------------------
00087 vtkRenderWindow* wxVtkBaseView::GetRenWin()             // virtual
00088 {
00089         return _iren->GetRenderWindow();
00090 }
00091 
00092 //----------------------------------------------------------------------------
00093                                         
00094 void wxVtkBaseView::TransFromCoordScreenToWorld(double &X, double &Y, double &Z, bool keepNormalDirection, int type) //virtual //keepNormalDirection=false, type=2
00095 {  
00096         GetRenderer()->SetDisplayPoint((int)X, (int)Y, (int)Z);
00097         GetRenderer()->DisplayToWorld();
00098         double fP[4];
00099         GetRenderer()->GetWorldPoint( fP );
00100         if ( fP[3] ){
00101                 fP[0] /= fP[3];
00102                 fP[1] /= fP[3];
00103                 fP[2] /= fP[3];
00104         }
00105 
00106 // EEDx5
00107         //JCP 13/05/2009
00108         vtkInteractorStyleBaseView* interactorstyle = (vtkInteractorStyleBaseView*)this->GetInteractorStyleBaseView();
00109         wxVtk2DBaseView* baseview = (wxVtk2DBaseView*)interactorstyle->GetWxVtk2DBaseView();
00110         baseview->TransformCoordinate_spacing_ViewToModel( fP[0] , fP[1] , fP[2] );
00111         //JCP 13/05/2009
00112 
00113         if (type!=0)
00114         {
00115                 X=fP[0];
00116         }
00117         if (type!=1)
00118         {
00119                 Y=fP[1];
00120         }
00121         if (type!=2)
00122         {
00123                 Z=fP[2];
00124         } 
00125 }
00126 
00127 //---------------------------------------------------------------------------
00128 /* JCP 14/05/09
00129 vtkInteractorStyleBaseView*     wxVtkBaseView::GetInteractorStyleBaseView()
00130 {
00131         return _interactorStyle;
00132 }
00133 */
00134 vtkInteractorStyleImage*        wxVtkBaseView::GetInteractorStyleBaseView()
00135 {
00136         return _interactorStyle;
00137 }
00138 
00139 
00140 //---------------------------------------------------------------------------
00141 
00142 void wxVtkBaseView::SetInteractorStyleBaseView( vtkInteractorStyleImage*        interactorStyle)
00143 {
00144         _interactorStyle = interactorStyle;
00145 }
00146 
00147 //---------------------------------------------------------------------------
00148 
00149 void wxVtkBaseView::GetSpacing(double spc[3])  // virtual
00150 {
00151         spc[0]=1;
00152         spc[1]=1;
00153         spc[2]=1;
00154 }
00155 
00156 
00157 
00158 //-------------------------------------------------------------------
00159 //-------------------------------------------------------------------
00160 //-------------------------------------------------------------------
00161 
00162 
00163 

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1