]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxViewer.cpp
memory leak tracking
[creaImageIO.git] / src2 / creaImageIOWxViewer.cpp
index d6871d9657d822b321eb784487079b0420b0235c..f73e81ebc5093375f2b9fbebe996d16cebbbbe2d 100644 (file)
@@ -5,13 +5,13 @@
 #include <vtkCamera.h>
 #include <vtkRenderer.h>
 #include <vtkImageData.h>
-
+#include <creawxVTKRenderWindowInteractor.h>
 #include <creaMessageManager.h>
 #include <stdio.h>
 #include <time.h>
 
 using namespace crea;
-
+// Memory tracking allocation
 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,74 +83,22 @@ 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)
-  {
-    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);
-               }
-               
-       }
-    
-  }
-
-  //================================================================
-  void WxViewer::SetImageVector(std::vector<ImagePointerHolder*>& pointers)
+   void WxViewer::SetImageVector(std::vector<boost::shared_ptr<ImagePointerHolder> >& pointers)
   {
        wxMutexLocker lock(mMutex);
-       GimmickMessage(1,"WxViewer::SetImageVector"<<std::endl);
+       GimmickDebugMessage(6,"WxViewer::SetImageVector"<<std::endl);
        imagePointers=pointers;
   }
 
-
-  //================================================================
-
-  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;
-  }
-  //================================================================
-
   //================================================================
 
   void WxViewer::ShowNextImage()
@@ -169,15 +106,16 @@ namespace creaImageIO
        wxMutexLocker lock(mMutex);
        
     
-    GimmickMessage(10,"WxViewer::ShowNextImage() "
+    GimmickDebugMessage(10,"WxViewer::ShowNextImage() "
                   <<mCurrent+1<<"/"
-                  <<images.size()<<std::endl);
+                  <<imagePointers.size()<<std::endl);
     
     if(imagePointers.size()>0)
        {
                if (mCurrent<imagePointers.size()) 
                {
-                       ImagePointerHolder* iph=imagePointers[mCurrent];
+                       boost::shared_ptr<ImagePointerHolder> iph = imagePointers[mCurrent];
+                       //ImagePointerHolder* iph= imagePointers[mCurrent];
                        vtkImageData* currIm=iph->Get();
                        ShowImage(currIm);
                        if ( currIm != mLastImageShown ) 
@@ -190,7 +128,8 @@ namespace creaImageIO
                else
                {
                        mCurrent = 0;
-                       ImagePointerHolder* iph=imagePointers[mCurrent];
+                       //ImagePointerHolder* iph=imagePointers[mCurrent];
+                       boost::shared_ptr<ImagePointerHolder> iph = imagePointers[mCurrent];
                        vtkImageData* currIm=iph->Get();
                        ShowImage(currIm);
                        if ( currIm != mLastImageShown ) 
@@ -204,14 +143,11 @@ namespace creaImageIO
   }
   //================================================================
 
-
-
-
   //=====================================================================
   void WxViewer::ShowImage(vtkImageData* im)
   {
  
-    GimmickDebugMessage(5,"WxViewer::ShowImage"
+    GimmickDebugMessage(6,"WxViewer::ShowImage"
                        <<std::endl);
     if (im==0) return;
 
@@ -261,30 +197,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;
@@ -292,15 +215,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()
        {
@@ -311,9 +237,6 @@ namespace creaImageIO
                mPlayer->Run();  
        }
        
-       
-       
 
   //  BEGIN_EVENT_TABLE(WxGimmickFrame, wxDialog)
   //    END_EVENT_TABLE()
@@ -331,7 +254,7 @@ namespace creaImageIO
   void*  WxViewerPlayer::Entry()
   {
          
-    GimmickMessage(1,"WxViewerPlayer::Entry()"<<std::endl);
+    GimmickDebugMessage(6,"WxViewerPlayer::Entry()"<<std::endl);
        
        while(!TestDestroy())
            { 
@@ -340,7 +263,7 @@ namespace creaImageIO
                        ::wxWakeUpIdle();
                        clock_t endwait;
                        endwait = clock () + 0.2 * CLOCKS_PER_SEC ;
-                       while (clock() < endwait) {}
+                       while (clock() < endwait ) {}
                        
       }
     return 0;
@@ -351,7 +274,7 @@ namespace creaImageIO
   //=====================================================================
   void WxViewerPlayer::OnExit()
   {
-    GimmickMessage(1,"WxViewerPlayer::OnExit() "<<std::endl);
+    GimmickDebugMessage(6,"WxViewerPlayer::OnExit() "<<std::endl);
   }