00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef HxImageTem2d_h
00011 #define HxImageTem2d_h
00012
00013 #include "HxImageTem.h"
00014
00015
00018 template<class ImageSigT>
00019 class HxImageTem2d : public HxImageTem<ImageSigT> {
00020 public:
00021 HxImageTem2d(int width = 1, int height = 1);
00022 HxImageTem2d(size_t* sizes);
00023 HxImageTem2d(const HxImageTem2d &);
00024 virtual ~HxImageTem2d();
00025
00026 int width() const;
00027 int height() const;
00028
00029 virtual DataPtrType dataPtrClone() const;
00030
00031
00032
00033
00034
00035 virtual void neighbourhoodOp(
00036 const HxImageData* src, HxString ngbName,
00037 HxTagList& tags);
00038
00039 virtual void neighbourhoodOp(
00040 const HxImageData* src, const HxImageData* kernel, HxString ngbName,
00041 HxTagList& tags);
00042
00043
00044
00045 virtual void geometricOp2d(const HxImageData* arg,
00046 HxMatrix func, HxGeoIntType gi,
00047 HxVec3Double translate, HxValue background);
00048 virtual HxImageData* projectDomain(int dimension, int coordinate);
00049 virtual void inverseProjectDomain(int dimension, int coordinate,
00050 const HxImageData* arg);
00051
00052 virtual void transpose(const HxImageData* src);
00053
00054
00055
00056 virtual void getValues(
00057 HxPointListConstIter first,
00058 HxPointListConstIter last,
00059 HxValueListBackInserter);
00060
00061 virtual HxValue sampleIdentMask(const HxImageData* mask,
00062 HxPoint p, HxSizes size, int label,
00063 HxString sFunc);
00064 virtual void sampleIdentMask(const HxImageData* mask,
00065 HxPoint p, HxSizes size, int label,
00066 HxString sFunc,
00067 HxValueListBackInserter res);
00068 virtual HxValue sampleWeightMask(const HxImageData* mask,
00069 HxPoint p, HxString sFunc);
00070
00071
00072
00073 virtual void getRgbPixels2d(int* pixels, HxString dispF,
00074 int bufWidth, int bufHeight,
00075 int VX, int VY, int VW, int VH,
00076 double SX, double SY, double scaleX, double scaleY,
00077 HxGeoIntType gi) const;
00078
00079
00080
00081 private:
00082 typename ImageSigT::PixelType* _data;
00083 };
00084
00085 #ifdef INC_TEMPLATE_SRC
00086 #include "HxImageTem2d.c"
00087 #endif
00088
00089 #endif