]> Creatis software - clitk.git/blobdiff - vv/vvToolBase.h
- toolbase
[clitk.git] / vv / vvToolBase.h
index 9e371f5172b1eabcc86bc52f8d1a15f22eda037d..005217fb30be94ad0fa8513fc332b2f5e3dd7663 100644 (file)
@@ -3,8 +3,8 @@
   Program:   vv
   Module:    $RCSfile: vvToolBase.h,v $
   Language:  C++
-  Date:      $Date: 2010/02/09 14:19:32 $
-  Version:   $Revision: 1.2 $
+  Date:      $Date: 2010/02/24 11:42:42 $
+  Version:   $Revision: 1.3 $
   Author :   David Sarrut (david.sarrut@creatis.insa-lyon.fr)
 
   Copyright (C) 2008
 #ifndef VVTOOLBASE_H
 #define VVTOOLBASE_H
 
-#include "vvToolCreatorBase.h"
-#include "vvToolInputSelectorWidget.h"
-#include "clitkImageToImageGenericFilter.h"
+#include "vvToolBaseBase.h"
+#include "vvToolCreator.h"
 
 //------------------------------------------------------------------------------
 template<class ToolType>
-class vvToolBase {
+class vvToolBase : public vvToolBaseBase {
 public:
+  vvToolBase(vvMainWindowBase * m);
   static void Initialize();  // can't be virtual, must be overwritten
-  void UpdateInfoFromMainWindow();
-  vvMainWindowToolInfo * mMainWindowToolInfo;
 
   static void SetToolName(QString n) { vvToolCreator<ToolType>::mSingleton->mToolName = n; }
   static void SetToolMenuName(QString n) { vvToolCreator<ToolType>::mSingleton->mToolMenuName = n; }
   static void SetToolIconFilename(QString n) { vvToolCreator<ToolType>::mSingleton->mToolIconFilename = n; }
   static void SetToolTip(QString n) { vvToolCreator<ToolType>::mSingleton->mToolTip = n; }
 
-  void InitializeListOfInputImages();
-  void InitializeListOfInputImages(vvToolInputSelectorWidget * w, 
-                                   clitk::ImageToImageGenericFilterBase * f);
-  std::vector<vvSlicerManager*> mSlicerManagersCompatible;
-  unsigned int mCurrentIndex;
-
-  vvImage::Pointer mCurrentImage;
-  vvSlicerManager * mCurrentSliceManager;
-  clitk::ImageToImageGenericFilterBase * mFilter;
-
 };
 //------------------------------------------------------------------------------
 
-
-//------------------------------------------------------------------------------
-template<class ToolType>
-void vvToolBase<ToolType>::UpdateInfoFromMainWindow() { 
-  mMainWindowToolInfo = vvToolCreator<ToolType>::mSingleton->mMainWindow->GetInfoForTool(); 
-}
-//------------------------------------------------------------------------------
-
-
-//------------------------------------------------------------------------------  
-template<class ToolType>
-void vvToolBase<ToolType>::Initialize() {
-  SetToolName("Unnamed tool");
-  SetToolMenuName("Unnamed tool");
-  SetToolIconFilename("");
-  SetToolTip("Unamed tool.");
-}
-//------------------------------------------------------------------------------    
-
-
-//------------------------------------------------------------------------------
-template<class ToolType>
-void vvToolBase<ToolType>::InitializeListOfInputImages(vvToolInputSelectorWidget * w, 
-                                                       clitk::ImageToImageGenericFilterBase * f) {
-  mFilter = f;
-  InitializeListOfInputImages();
-  w->Initialize(mSlicerManagersCompatible, mCurrentIndex);
-  w->SetToolTip(mFilter->GetAvailableImageTypes().c_str());
-}
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-template<class ToolType>
-void vvToolBase<ToolType>::InitializeListOfInputImages() {
-  UpdateInfoFromMainWindow();
-
-  std::vector<vvSlicerManager*> & mSlicerManagers = *mMainWindowToolInfo->mSlicerManagers;
-  mCurrentIndex = mMainWindowToolInfo->mSlicerManagerCurrentIndex;
-  DD("InputUpdate");
-  DD(mCurrentIndex);
-  // HERE : Check if image is ok (dimension, type etc ...)
-
-  if (mFilter) {
-    mFilter->PrintAvailableImageTypes();
-    
-  }
-  else {
-    /// if not set, do not check filter type
-    std::cerr << "*** ERROR, set mFilter member in the vvTool class before calling InitializeListOfInputImages" << std::endl;
-    exit(0);
-  }
-
-  //unsigned int previousIndex = mInputSequenceBox->mCurrentIndex();
-  mSlicerManagersCompatible.clear();
-  // mInputSequenceBox->clear();
-  for (unsigned int i = 0; i < mSlicerManagers.size(); i++) {
-    
-    vvImage * image = mSlicerManagers[i]->GetImage();
-    
-    if (mFilter->CheckImageType(image->GetNumberOfDimensions(),
-                image->GetNumberOfScalarComponents(),
-                image->GetScalarTypeAsString())) {
-      mSlicerManagersCompatible.push_back(mSlicerManagers[i]);
-      if (mCurrentIndex == i) {
-        mCurrentIndex = mSlicerManagersCompatible.size()-1;
-      }
-    }
-    else {
-      std::cerr << mSlicerManagers[i]->GetFileName().c_str() << " not compatible image" << std::endl;
-      if (mCurrentIndex == i) {
-        mCurrentIndex = 0;
-      }
-    }
-  }  
-}
-//------------------------------------------------------------------------------
-
+#include "vvToolBase.txx"
 
 #endif