00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef HxExportPpm_h
00010 #define HxExportPpm_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 HxExportPpm
00020 {
00021 public:
00022 typedef HxTagPixOpOut DirectionCategory;
00023 typedef HxTagTransInVar TransVarianceCategory;
00024 typedef HxTag1Phase PhaseCategory;
00025
00026 HxExportPpm(HxTagList&);
00027
00028 void doIt(const ArithT& x);
00029
00030 static HxString className();
00031 private:
00032 HxByte* _data;
00033 };
00034
00035
00036 template<class ArithT>
00037 inline
00038 HxExportPpm<ArithT>::HxExportPpm(HxTagList& tags)
00039 {
00040 _data = HxGetTag<HxByte*>(tags, "dataPtr", ((HxByte*)0));
00041 }
00042
00043 template<class ArithT>
00044 inline HxString
00045 HxExportPpm<ArithT>::className()
00046 {
00047 static HxString name("exportPpm");
00048 return name;
00049 }
00050
00051 template<class ArithT>
00052 inline void
00053 HxExportPpm<ArithT>::doIt(const ArithT& x)
00054 {
00055 HxVec3Int p = x;
00056 *_data++ = p.x();
00057 *_data++ = p.y();
00058 *_data++ = p.z();
00059 }
00060
00061 #endif