// clitk
#include "clitkCommon.h"
+#include "clitkImageCommon.h"
namespace clitk {
+
//--------------------------------------------------------------------
/*
Class to store and retreive anatomical feature such as 3D
public:
AnatomicalFeatureDatabase();
+ typedef std::string TagType;
+
// Set/Get filename
itkSetMacro(Filename, std::string);
itkGetConstMacro(Filename, std::string);
void Write();
void Load();
- // Get landmarks
+ // Set Get landmarks
typedef itk::Point<double,3> PointType3D;
- void SetPoint3D(std::string tag, PointType3D & p);
- void GetPoint3D(std::string tag, PointType3D & p);
+ void SetPoint3D(TagType tag, PointType3D & p);
+ void GetPoint3D(TagType tag, PointType3D & p);
+ double GetPoint3D(std::string tag, int dim);
+ bool TagExist(std::string tag);
+
+ // Set Get image
+ void SetImageFilename(TagType tag, std::string f);
+ template<class ImageType>
+ typename ImageType::Pointer GetImage(TagType tag, bool reload=false);
+ template<class ImageType>
+ void SetImage(TagType tag, std::string f, typename ImageType::Pointer image, bool write=false);
+ template<class ImageType>
+ void ReleaseImage(TagType tag);
+ // Set Get Double
+ void SetDouble(TagType tag, double d);
+ double GetDouble(TagType tag);
+
protected:
std::string m_Filename;
- typedef std::map<std::string, std::string> MapTagType;
+ typedef itk::ImageBase<3> ImageBaseType;
+ typedef std::map<TagType, std::string> MapTagType;
+ typedef std::map<TagType, ImageBaseType*> MapTagImageType;
MapTagType m_MapOfTag;
+ MapTagImageType m_MapOfImage;
}; // end class
//--------------------------------------------------------------------
+ #include "clitkAnatomicalFeatureDatabase.txx"
+
} // end namespace clitk
//--------------------------------------------------------------------