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