00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef HxGeneratePix_h
00010 #define HxGeneratePix_h
00011
00012 #include "HxCategories.h"
00013 #include "HxTagList.h"
00014 #include "HxImageGenerator.h"
00015
00016
00017 template<class ArithT>
00018 class HxGeneratePix
00019 {
00020 public:
00021 typedef HxTagPixOpIn DirectionCategory;
00022 typedef HxTagTransVar TransVarianceCategory;
00023 typedef HxTag1Phase PhaseCategory;
00024
00025 HxGeneratePix(HxTagList&, int, int, int);
00026
00027 ArithT doIt(int x, int y, int z);
00028
00029 static HxString className();
00030
00031 private:
00032 HxImageGenerator* _imgGenerator;
00033 };
00034
00035
00036 template<class ArithT>
00037 inline
00038 HxGeneratePix<ArithT>::HxGeneratePix(HxTagList& tags, int, int, int)
00039 {
00040 _imgGenerator = HxGetTag<HxImageGenerator*>(tags, "imageGenerator");
00041 }
00042
00043 template<class ArithT>
00044 inline HxString
00045 HxGeneratePix<ArithT>::className()
00046 {
00047 static HxString name("generate");
00048 return name;
00049 }
00050
00051 template<class ArithT>
00052 inline ArithT
00053 HxGeneratePix<ArithT>::doIt(int x, int y, int z)
00054 {
00055 return _imgGenerator->get(x, y, z);
00056 }
00057
00058
00059 #endif