00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef HxImportPpm_h
00010 #define HxImportPpm_h
00011
00012 #include "HxCategories.h"
00013 #include "HxTagList.h"
00014 #include "HxByte.h"
00015 #include "HxVec3Int.h"
00016
00017
00018 template<class ArithT>
00019 class HxImportPpm
00020 {
00021 public:
00022 typedef HxTagPixOpIn DirectionCategory;
00023 typedef HxTagTransInVar TransVarianceCategory;
00024 typedef HxTag1Phase PhaseCategory;
00025
00026 HxImportPpm(HxTagList&);
00027
00028 ArithT doIt();
00029
00030 static HxString className();
00031 private:
00032 HxByte* _data;
00033 };
00034
00035
00036 template<class ArithT>
00037 inline
00038 HxImportPpm<ArithT>::HxImportPpm(HxTagList& tags)
00039 {
00040 _data = HxGetTag<HxByte*>(tags, "dataPtr", ((HxByte*)0));
00041 }
00042
00043 template<class ArithT>
00044 inline HxString
00045 HxImportPpm<ArithT>::className()
00046 {
00047 static HxString name("importPpm");
00048 return name;
00049 }
00050
00051 template<class ArithT>
00052 inline ArithT
00053 HxImportPpm<ArithT>::doIt()
00054 {
00055 HxVec3Int p(_data[0], _data[1], _data[2]);
00056 _data += 3;
00057 return p;
00058 }
00059
00060 #endif