]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkInteractorStyleBaseView.cxx
structButtonContainerSettings.h changes
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / vtkInteractorStyleBaseView.cxx
index f68e2afcf42e519440fa871a094830a7d2d8bcc4..3a1918bb45bdce8289ebb1ba84e02d8a3ac6cd73 100644 (file)
@@ -99,8 +99,9 @@ void  vtkInteractorStyleBaseView::RemoveInteractorStyleMaracas(InteractorStyleMa
                {
                        _lstInteractorStyleMaracas.erase(iter);
                        removed = true;
+               } else {
+                 iter++;
                }
-               iter++;
        }               
 }
 //---------------------------------------------------------------------------
@@ -130,8 +131,13 @@ void vtkInteractorStyleBaseView::CallLstInteractorStyleMaracas(int type)
 
        for (i=0;i<size;i++)
        {
-               intStyMar = _lstInteractorStyleMaracas[i];
-               if (intStyMar->GetActive()==true){
+               if (i < (int)_lstInteractorStyleMaracas.size() )
+               {
+                       intStyMar = _lstInteractorStyleMaracas[i];
+               } else {
+                       intStyMar=NULL;
+               }
+               if (intStyMar!=NULL && intStyMar->GetActive()==true){
                        if (type ==1)
                        {  // OnRightButtonDown
                                if (intStyMar->OnRightButtonDown()==false)
@@ -230,25 +236,27 @@ void  vtkInteractorStyleBaseView::OnChar()  // virtual
 //---------------------------------------------------------------------------
 void vtkInteractorStyleBaseView::TransformCoordinate(double &X, double &Y, double &Z)
 {
-    vtkImageViewer2 *imageViewer = ((wxVtk2DBaseView*)GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2();
+       if(((wxVtk2DBaseView*)GetWxVtk2DBaseView())->_imageViewer2XYZ){
+               vtkImageViewer2 *imageViewer = ((wxVtk2DBaseView*)GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2();
 
-       imageViewer->GetRenderer()->SetDisplayPoint((int)X, (int)Y, (int)Z);
-       imageViewer->GetRenderer()->DisplayToWorld();
-       double fP[4];
-       imageViewer->GetRenderer()->GetWorldPoint( fP );
+               imageViewer->GetRenderer()->SetDisplayPoint((int)X, (int)Y, (int)Z);
+               imageViewer->GetRenderer()->DisplayToWorld();
+               double fP[4];
+               imageViewer->GetRenderer()->GetWorldPoint( fP );
 
-       if ( fP[3] ){
-               fP[0] /= fP[3];
-               fP[1] /= fP[3];
-               fP[2] /= fP[3];
-       }
+               if ( fP[3] ){
+                       fP[0] /= fP[3];
+                       fP[1] /= fP[3];
+                       fP[2] /= fP[3];
+               }
 
-// EEDx5
-       ((wxVtk2DBaseView*)GetWxVtk2DBaseView())->TransformCoordinate_spacing_ViewToModel(fP[0],fP[1],fP[2]);
+       // EEDx5
+               ((wxVtk2DBaseView*)GetWxVtk2DBaseView())->TransformCoordinate_spacing_ViewToModel(fP[0],fP[1],fP[2]);
 
-       X=fP[0];
-       Y=fP[1];
-       Z=fP[2];
+               X=fP[0];
+               Y=fP[1];
+               Z=fP[2];
+       }
 }
 //---------------------------------------------------------------------------
 void vtkInteractorStyleBaseView::SetwxVtkBaseView(wxVtkBaseView *wxvtkbaseview)
@@ -322,9 +330,16 @@ void vtkInteractorStyleBaseView::EvaluateToRefresh()
                {
                        _parent_refresh_waiting = false;
                        wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121);  // Refresh
+//CPR 13/01/2010
                        this->_wxvtkbaseview->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
-               }
-       }
+                       int i;
+                       int size = _lstParentToReport.size();
+                       for(i = 0; i<size; i++)
+                       {       
+                               _lstParentToReport[i]->ProcessEvent(newevent1);
+                       }//for
+               }//if
+       }//if _blockRefresh
 }
 //---------------------------------------------------------------------------
 void vtkInteractorStyleBaseView::BlockRefresh()
@@ -335,4 +350,20 @@ void vtkInteractorStyleBaseView::BlockRefresh()
 void vtkInteractorStyleBaseView::UnBlockRefresh()
 {
        _blockRefresh=false;
-}
\ No newline at end of file
+}
+
+wxEvtHandler* vtkInteractorStyleBaseView::GetParentToReport(int i)
+{
+       wxEvtHandler* parentToReport = NULL;
+       if(i>=0 && i<_lstParentToReport.size())
+       {       
+               parentToReport = _lstParentToReport[i];
+       }
+       return parentToReport;
+
+}
+
+void vtkInteractorStyleBaseView::AddParentToReport(wxEvtHandler* parentToReport)
+{
+       _lstParentToReport.push_back(parentToReport);
+}