From: dsarrut Date: Mon, 4 Oct 2010 07:51:58 +0000 (+0000) Subject: add anatomical feature DB capability to a filter X-Git-Tag: v1.2.0~372 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=c4376513182f90792e51416ff39fccb983ddc736;p=clitk.git add anatomical feature DB capability to a filter --- diff --git a/segmentation/clitkFilterWithAnatomicalFeatureDatabaseManagement.cxx b/segmentation/clitkFilterWithAnatomicalFeatureDatabaseManagement.cxx new file mode 100644 index 0000000..343e839 --- /dev/null +++ b/segmentation/clitkFilterWithAnatomicalFeatureDatabaseManagement.cxx @@ -0,0 +1,58 @@ +/*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv + + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - CREATIS CNRS laboratory 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. + + It is distributed under dual licence + + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + ======================================================================-====*/ + +// clitk +#include "clitkFilterWithAnatomicalFeatureDatabaseManagement.h" + +//-------------------------------------------------------------------- +clitk::FilterWithAnatomicalFeatureDatabaseManagement:: +FilterWithAnatomicalFeatureDatabaseManagement() +{ + m_AFDB = NULL; + SetAFDBFilename("noname.afdb"); +} +//-------------------------------------------------------------------- + + +//-------------------------------------------------------------------- +void clitk::FilterWithAnatomicalFeatureDatabaseManagement::WriteAFDB() +{ + GetAFDB()->SetFilename(GetAFDBFilename()); + GetAFDB()->Write(); +} +//-------------------------------------------------------------------- + + +//-------------------------------------------------------------------- +void clitk::FilterWithAnatomicalFeatureDatabaseManagement::LoadAFDB() +{ + GetAFDB()->SetFilename(GetAFDBFilename()); + GetAFDB()->Load(); +} +//-------------------------------------------------------------------- + + +//-------------------------------------------------------------------- +clitk::AnatomicalFeatureDatabase * clitk::FilterWithAnatomicalFeatureDatabaseManagement::GetAFDB() +{ + if (m_AFDB == NULL) { + m_AFDB = new clitk::AnatomicalFeatureDatabase; + } + return m_AFDB; +} +//-------------------------------------------------------------------- diff --git a/segmentation/clitkFilterWithAnatomicalFeatureDatabaseManagement.h b/segmentation/clitkFilterWithAnatomicalFeatureDatabaseManagement.h new file mode 100644 index 0000000..fd9ecc1 --- /dev/null +++ b/segmentation/clitkFilterWithAnatomicalFeatureDatabaseManagement.h @@ -0,0 +1,70 @@ +/*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv + + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - CREATIS CNRS laboratory 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. + + It is distributed under dual licence + + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + ======================================================================-====*/ + +#ifndef CLITKFILTERWITHANATOMICALFEATUREDATABASEMANAGEMENT_H +#define CLITKFILTERWITHANATOMICALFEATUREDATABASEMANAGEMENT_H + +// clitk +#include "clitkAnatomicalFeatureDatabase.h" +#include "clitkFilterBase.h" + +namespace clitk { + + //-------------------------------------------------------------------- + /* + - Convenient class to add AFDB capabilities to a filter + - "virtual" inheritance is needed to avoir ambiguous inherited + functions + */ + //-------------------------------------------------------------------- + class FilterWithAnatomicalFeatureDatabaseManagement: public virtual FilterBase + { + public: + // Standard class typedefs + typedef FilterWithAnatomicalFeatureDatabaseManagement Self; + + // Run-time type information (and related methods) + itkTypeMacro(FilterWithAnatomicalFeatureDatabaseManagement, Object); + + // Set/Get filename + itkSetMacro(AFDBFilename, std::string); + itkGetConstMacro(AFDBFilename, std::string); + GGO_DefineOption(afdb, SetAFDBFilename, std::string); + + void WriteAFDB(); + void LoadAFDB(); + AnatomicalFeatureDatabase * GetAFDB(); + + protected: + FilterWithAnatomicalFeatureDatabaseManagement(); + virtual ~FilterWithAnatomicalFeatureDatabaseManagement() {} + + std::string m_AFDBFilename; + clitk::AnatomicalFeatureDatabase * m_AFDB; + + private: + FilterWithAnatomicalFeatureDatabaseManagement(const Self&); //purposely not implemented + void operator=(const Self&); //purposely not implemented + + }; // end class + //-------------------------------------------------------------------- + +} // end namespace clitk +//-------------------------------------------------------------------- + +#endif // CLITKFILTERWITHANATOMICALFEATUREDATABASEMANAGEMENT_H