//--------------------------------------------------------------------
clitk::AnatomicalFeatureDatabase::AnatomicalFeatureDatabase()
{
- SetFilename("default.afdb");
+ SetFilename("default.afdb");
+ SetPath("./");
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+clitk::AnatomicalFeatureDatabase::Pointer clitk::AnatomicalFeatureDatabase::New(std::string filename)
+{
+ Pointer a = AnatomicalFeatureDatabase::New();
+ a->SetFilename(filename);
+ a->Load();
+ return a;
}
//--------------------------------------------------------------------
//--------------------------------------------------------------------
+//--------------------------------------------------------------------
+std::string clitk::AnatomicalFeatureDatabase::GetTagValue(std::string tag)
+{
+ if (!TagExist(tag)) {
+ clitkExceptionMacro("Could not find the tag <" << tag << "> in the DB");
+ return "";
+ }
+ std::string s = m_MapOfTag[tag];
+ return s;
+}
+//--------------------------------------------------------------------
+
+
//--------------------------------------------------------------------
void clitk::AnatomicalFeatureDatabase::GetPoint3D(std::string tag, PointType3D & p)
{
class AnatomicalFeatureDatabase: public itk::Object
{
public:
- AnatomicalFeatureDatabase();
-
+ // typedef
typedef std::string TagType;
+ // New macro
+ typedef itk::Object Superclass;
+ typedef AnatomicalFeatureDatabase Self;
+ typedef itk::SmartPointer<Self> Pointer;
+ typedef itk::SmartPointer<const Self> ConstPointer;
+ itkNewMacro(Self);
+ static Pointer New(std::string filename);
+
// Set/Get filename
itkSetMacro(Filename, std::string);
itkGetConstMacro(Filename, std::string);
// Read and write DB
void Write();
void Load();
+ itkGetConstMacro(Path, std::string);
+ itkSetMacro(Path, std::string);
// Set Get landmarks
typedef itk::Point<double,3> PointType3D;
void GetPoint3D(TagType tag, PointType3D & p);
double GetPoint3D(std::string tag, int dim);
bool TagExist(std::string tag);
-
+ std::string GetTagValue(std::string tag);
+
// Set Get image
void SetImageFilename(TagType tag, std::string f);
template<class ImageType>
void RemoveTag(TagType tag);
protected:
+ AnatomicalFeatureDatabase();
+ ~AnatomicalFeatureDatabase() {}
+
std::string m_Filename;
+ std::string m_Path;
typedef itk::ImageBase<3> ImageBaseType;
typedef std::map<TagType, std::string> MapTagType;
- typedef std::map<TagType, ImageBaseType*> MapTagImageType;
+ typedef std::map<TagType, ImageBaseType*> MapTagImageType;
MapTagType m_MapOfTag;
MapTagImageType m_MapOfImage;
}; // end class
//--------------------------------------------------------------------
+#define NewAFDB(NAME, FILE) \
+ clitk::AnatomicalFeatureDatabase::Pointer NAME = clitk::AnatomicalFeatureDatabase::New(FILE);
+
#include "clitkAnatomicalFeatureDatabase.txx"
} // end namespace clitk