]> Creatis software - clitk.git/commitdiff
add anatomical feature DB capability to a filter
authordsarrut <dsarrut>
Mon, 4 Oct 2010 07:51:58 +0000 (07:51 +0000)
committerdsarrut <dsarrut>
Mon, 4 Oct 2010 07:51:58 +0000 (07:51 +0000)
segmentation/clitkFilterWithAnatomicalFeatureDatabaseManagement.cxx [new file with mode: 0644]
segmentation/clitkFilterWithAnatomicalFeatureDatabaseManagement.h [new file with mode: 0644]

diff --git a/segmentation/clitkFilterWithAnatomicalFeatureDatabaseManagement.cxx b/segmentation/clitkFilterWithAnatomicalFeatureDatabaseManagement.cxx
new file mode 100644 (file)
index 0000000..343e839
--- /dev/null
@@ -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 (file)
index 0000000..fd9ecc1
--- /dev/null
@@ -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