X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolBase.h;h=3cd4fbfd2acc55b466b98d435c5db46b0ee0715a;hb=dd52aaffdda312ae9a4b8028fe1e94ac7a0e1b89;hp=9e371f5172b1eabcc86bc52f8d1a15f22eda037d;hpb=c324c54e19ace253a5a8f318a0c44cb771cf50c6;p=clitk.git diff --git a/vv/vvToolBase.h b/vv/vvToolBase.h index 9e371f5..3cd4fbf 100644 --- a/vv/vvToolBase.h +++ b/vv/vvToolBase.h @@ -1,140 +1,59 @@ /*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Program: vv - Module: $RCSfile: vvToolBase.h,v $ - Language: C++ - Date: $Date: 2010/02/09 14:19:32 $ - Version: $Revision: 1.2 $ - Author : David Sarrut (david.sarrut@creatis.insa-lyon.fr) + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://www.centreleonberard.fr + - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr - Copyright (C) 2008 - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr - CREATIS http://www.creatis.insa-lyon.fr + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the copyright notices for more information. - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, version 3 of the License. + It is distributed under dual licence - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - - =========================================================================*/ + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +===========================================================================**/ #ifndef VVTOOLBASE_H #define VVTOOLBASE_H -#include "vvToolCreatorBase.h" -#include "vvToolInputSelectorWidget.h" -#include "clitkImageToImageGenericFilter.h" +#include "vvToolBaseBase.h" +#include "vvToolCreator.h" +#include //------------------------------------------------------------------------------ template -class vvToolBase { +class vvToolBase : public vvToolBaseBase { public: + vvToolBase(vvMainWindowBase * m); + virtual ~vvToolBase() {}; + static void Initialize(); // can't be virtual, must be overwritten - void UpdateInfoFromMainWindow(); - vvMainWindowToolInfo * mMainWindowToolInfo; - - static void SetToolName(QString n) { vvToolCreator::mSingleton->mToolName = n; } - static void SetToolMenuName(QString n) { vvToolCreator::mSingleton->mToolMenuName = n; } - static void SetToolIconFilename(QString n) { vvToolCreator::mSingleton->mToolIconFilename = n; } - static void SetToolTip(QString n) { vvToolCreator::mSingleton->mToolTip = n; } - - void InitializeListOfInputImages(); - void InitializeListOfInputImages(vvToolInputSelectorWidget * w, - clitk::ImageToImageGenericFilterBase * f); - std::vector mSlicerManagersCompatible; - unsigned int mCurrentIndex; - - vvImage::Pointer mCurrentImage; - vvSlicerManager * mCurrentSliceManager; - clitk::ImageToImageGenericFilterBase * mFilter; - -}; -//------------------------------------------------------------------------------ - - -//------------------------------------------------------------------------------ -template -void vvToolBase::UpdateInfoFromMainWindow() { - mMainWindowToolInfo = vvToolCreator::mSingleton->mMainWindow->GetInfoForTool(); -} -//------------------------------------------------------------------------------ + static void SetToolName(QString n) { vvToolCreator::GetInstance()->mToolName = n; } + static void SetToolMenuName(QString n) { vvToolCreator::GetInstance()->mToolMenuName = n; } + static void SetToolIconFilename(QString n) { vvToolCreator::GetInstance()->mToolIconFilename = n; } + static void SetToolTip(QString n) { vvToolCreator::GetInstance()->mToolTip = n; } + static void SetToolExperimental(bool exp) { vvToolCreator::GetInstance()->mExperimental = exp; } + static void SetToolInMenu(std::string menu) { vvToolCreator::GetInstance()->SetMenuName(menu); } -//------------------------------------------------------------------------------ -template -void vvToolBase::Initialize() { - SetToolName("Unnamed tool"); - SetToolMenuName("Unnamed tool"); - SetToolIconFilename(""); - SetToolTip("Unamed tool."); -} -//------------------------------------------------------------------------------ - + static QIcon GetToolIcon() { return QIcon(vvToolCreator::GetInstance()->mToolIconFilename); } + static QString & GetToolName() { return vvToolCreator::GetInstance()->mToolName; } -//------------------------------------------------------------------------------ -template -void vvToolBase::InitializeListOfInputImages(vvToolInputSelectorWidget * w, - clitk::ImageToImageGenericFilterBase * f) { - mFilter = f; - InitializeListOfInputImages(); - w->Initialize(mSlicerManagersCompatible, mCurrentIndex); - w->SetToolTip(mFilter->GetAvailableImageTypes().c_str()); -} -//------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------ -template -void vvToolBase::InitializeListOfInputImages() { - UpdateInfoFromMainWindow(); - - std::vector & 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); + vvSlicerManager * AddImage(vvImage::Pointer image,std::string filename) { + return CREATOR(ToolType)->GetMainWindow()->AddImage(image,filename); } - //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; - } - } - } -} + void setSender(QObject *s) { mSender = s; } + + protected: + QObject * mSender; +}; //------------------------------------------------------------------------------ +#include "vvToolBase.txx" #endif