00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HxImageTem3d_h
00012 #define HxImageTem3d_h
00013
00014 #include "HxImageTem.h"
00015
00016
00019 template<class ImageSigT>
00020 class HxImageTem3d : public HxImageTem<ImageSigT> {
00021 public:
00022 HxImageTem3d(int width = 1, int height = 1,
00023 int depth = 1);
00024 HxImageTem3d(size_t* sizes);
00025 HxImageTem3d(const HxImageTem3d &);
00026 virtual ~HxImageTem3d();
00027
00028 int width() const;
00029 int height() const;
00030 int depth() const;
00031
00032 virtual DataPtrType dataPtrClone() const;
00033
00034
00035
00036
00037
00038 virtual void neighbourhoodOp(const HxImageData* kernel,
00039 HxString nfName);
00040
00041
00042
00043 virtual void geometricOp2d(const HxImageData* arg,
00044 HxMatrix func, HxGeoIntType gi,
00045 HxVec3Double translate, HxValue background);
00046 virtual HxImageData* projectDomain(int dimension, int coordinate);
00047 virtual void inverseProjectDomain(int dimension, int coordinate,
00048 const HxImageData* arg);
00049
00050
00051
00052 virtual void getValues(
00053 HxPointListConstIter first,
00054 HxPointListConstIter last,
00055 HxValueListBackInserter);
00056
00057 virtual HxValue sampleIdentMask(const HxImageData* mask,
00058 HxPoint p, HxSizes size, int label,
00059 HxString sFunc);
00060 virtual void sampleIdentMask(const HxImageData* mask,
00061 HxPoint p, HxSizes size, int label,
00062 HxString sFunc,
00063 HxValueListBackInserter res);
00064 virtual HxValue sampleWeightMask(const HxImageData* mask,
00065 HxPoint p, HxString sFunc);
00066 private:
00067 typename ImageSigT::PixelType* _data;
00068 };
00069
00070 #ifdef INC_TEMPLATE_SRC
00071 #include "HxImageTem3d.c"
00072 #endif
00073
00074 #endif