]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxViewer.cpp
Clean-Up with Juan Sebastien
[creaImageIO.git] / src2 / creaImageIOWxViewer.cpp
index 8639888215e9e2cacd2658e939589078d534ab25..193fedb7881179c91504be980052c55f178f2e13 100644 (file)
@@ -14,7 +14,7 @@ using namespace crea;
 
 namespace creaImageIO
 {
-
+  
   //=====================================================================
 
   //=====================================================================
@@ -26,21 +26,11 @@ namespace creaImageIO
     {}
     
     void* Entry();
-    //    void SetImagesToPlay(std::vector<vtkImageData*> im);
-    //    void ShowImage(vtkImageData* v);
-    //   void StartIterator();
     void  OnExit();
        
   private:
-    //std::vector<vtkImageData*> mImagesToPlay;
-    //vtkImageViewer2* mViewer;
-    /// Associated wxvtk interactor
-    //crea::creawxVTKRenderWindowInteractor  *mInteractor;
-    //std::vector<vtkImageData*>::iterator i;
+
     WxViewer* mWxViewer;
-    
-    //    int mx1,mx2,my1,my2,mz1,mz2;
-    //    double mspx,mspy,mspz;
   };
   
   //=====================================================================
@@ -62,7 +52,7 @@ namespace creaImageIO
                 size)
   {
     wxMutexLocker lock(mMutex);
-    GimmickDebugMessage(1,"WxViewer::WxViewer"
+    GimmickDebugMessage(6,"WxViewer::WxViewer"
                        <<std::endl);
 
     mNeedRefresh = false;
@@ -80,8 +70,7 @@ namespace creaImageIO
     mViewer->SetupInteractor ( mInteractor );
     
     mCurrent = 0;
-
-         mPlayer = 0;
+       mPlayer = 0;
          
     topsizer-> Add( mInteractor ,1,wxGROW  ,0);
     SetSizer( topsizer );     
@@ -94,68 +83,21 @@ namespace creaImageIO
   WxViewer::~WxViewer()
   {
     wxMutexLocker lock(mMutex);
-    GimmickDebugMessage(1,"WxViewer::~WxViewer"
+    GimmickDebugMessage(6,"WxViewer::~WxViewer"
                        <<std::endl);
-    SetMovieSize(0);
     // TO DO : desallocate cleanly
     //    delete mPlayer;
     //    delete mInteractor;
   }
   //=====================================================================
 
-
   //================================================================
-
-  void WxViewer::SetImage(int i, vtkImageData* im)
+  void WxViewer::SetImageVector(std::vector<ImagePointerHolder*>& pointers)
   {
-    wxMutexLocker lock(mMutex);
-       if(images.size()>0)
-       {
-               GimmickDebugMessage(5,"WxViewer::SetImage "<<i+1<<"/"<<images.size()
-                       <<std::endl);
-               if (i<images.size())
-               {
-               //      if (images[i]!=0) images[i]->UnRegister(NULL);
-               images[i] = im;
-               //      if (im!=0) im->Register(NULL);
-               }
-               
-       }
-    
-  }
-
-  //================================================================
-   
-
-
-  //================================================================
-
-  bool WxViewer::ImagesEmpty()
-  {
-    wxMutexLocker lock(mMutex);
-    return images.empty();
-  }
-  //================================================================
-
-  //================================================================
-
-  void WxViewer::SetMovieSize(unsigned int si)
-  {
-    wxMutexLocker lock(mMutex);
-    GimmickDebugMessage(5,"WxViewer::SetMovieSize("<<(int)si<<")"
-                       <<std::endl);
-    for (unsigned int i=0;i<images.size();++i)
-      {
-       if (images[i]!=0) 
-         {
-           //      images[i]->UnRegister(NULL);
-         }
-      }
-    images.clear();
-    for (unsigned int i=0;i<si;++i) images.push_back(0);
-    mCurrent = 0;
+       wxMutexLocker lock(mMutex);
+       GimmickDebugMessage(6,"WxViewer::SetImageVector"<<std::endl);
+       imagePointers=pointers;
   }
-  //================================================================
 
   //================================================================
 
@@ -164,30 +106,46 @@ namespace creaImageIO
        wxMutexLocker lock(mMutex);
        
     
-    GimmickMessage(10,"WxViewer::ShowNextImage() "
+    GimmickDebugMessage(10,"WxViewer::ShowNextImage() "
                   <<mCurrent+1<<"/"
-                  <<images.size()<<std::endl);
+                  <<imagePointers.size()<<std::endl);
     
-    
-    if (mCurrent<images.size()) 
-      {
-       ShowImage(images[mCurrent]);
-       if ( images[mCurrent] != mLastImageShown ) mNeedRefresh = true;
-       mLastImageShown = images[mCurrent];
-      }
-    mCurrent++;
-    if (mCurrent >= images.size()) mCurrent = 0;
+    if(imagePointers.size()>0)
+       {
+               if (mCurrent<imagePointers.size()) 
+               {
+                       ImagePointerHolder* iph=imagePointers[mCurrent];
+                       vtkImageData* currIm=iph->Get();
+                       ShowImage(currIm);
+                       if ( currIm != mLastImageShown ) 
+                       {
+                               mNeedRefresh = true;
+                               mLastImageShown = currIm;
+                       }
+               mCurrent++;
+           }
+               else
+               {
+                       mCurrent = 0;
+                       ImagePointerHolder* iph=imagePointers[mCurrent];
+                       vtkImageData* currIm=iph->Get();
+                       ShowImage(currIm);
+                       if ( currIm != mLastImageShown ) 
+                       {
+                               mNeedRefresh = true;
+                               mLastImageShown = currIm;
+                       }
+                       mCurrent++;
+               }
+       }
   }
   //================================================================
 
-
-
-
   //=====================================================================
   void WxViewer::ShowImage(vtkImageData* im)
   {
  
-    GimmickDebugMessage(5,"WxViewer::ShowImage"
+    GimmickDebugMessage(6,"WxViewer::ShowImage"
                        <<std::endl);
     if (im==0) return;
 
@@ -237,30 +195,17 @@ namespace creaImageIO
         mViewer->GetRenderer()->ResetCameraClippingRange(bounds);
 
          
-      }
-    
-   //::wxWakeUpIdle();
+         }
 
   } 
   //================================================================
   
-  //==================================================
-  void WxViewer::OnInternalIdle()
-  {
-    //    mInteractor->Refresh();
-       if(images.size()>0)
-       {
-//      mInteractor->Render();
-       }
-    //mViewer->Render();      
-  }
-
    //================================================================
   bool WxViewer::RefreshIfNecessary()
   {
     if (mNeedRefresh)
       {
-       GimmickMessage(1,"WxViewer : Refreshing"<<std::endl);
+       GimmickDebugMessage(10,"WxViewer : Refreshing"<<std::endl);
 
        mInteractor->Render();
        mNeedRefresh = false;
@@ -268,15 +213,18 @@ namespace creaImageIO
       }
     return false;
   }
+  //================================================================
+  
   //==================================================
   void WxViewer::StopPlayer()
   {
          wxMutexLocker lock(mMutex);
-         if (mPlayer==0) return;
+         if (mPlayer==0 ) return;
          mPlayer->Delete();  
          mPlayer=0;
   }
-
+  //================================================================
+  
   //==================================================
   void WxViewer::StartPlayer()
        {
@@ -287,9 +235,6 @@ namespace creaImageIO
                mPlayer->Run();  
        }
        
-       
-       
 
   //  BEGIN_EVENT_TABLE(WxGimmickFrame, wxDialog)
   //    END_EVENT_TABLE()
@@ -307,7 +252,7 @@ namespace creaImageIO
   void*  WxViewerPlayer::Entry()
   {
          
-    GimmickMessage(1,"WxViewerPlayer::Entry()"<<std::endl);
+    GimmickDebugMessage(6,"WxViewerPlayer::Entry()"<<std::endl);
        
        while(!TestDestroy())
            { 
@@ -316,7 +261,7 @@ namespace creaImageIO
                        ::wxWakeUpIdle();
                        clock_t endwait;
                        endwait = clock () + 0.2 * CLOCKS_PER_SEC ;
-                       while (clock() < endwait) {}
+                       while (clock() < endwait ) {}
                        
       }
     return 0;
@@ -327,7 +272,7 @@ namespace creaImageIO
   //=====================================================================
   void WxViewerPlayer::OnExit()
   {
-    GimmickMessage(1,"WxViewerPlayer::OnExit() "<<std::endl);
+    GimmickDebugMessage(6,"WxViewerPlayer::OnExit() "<<std::endl);
   }