00001
00016 #ifndef INC_SPATMOD_IMAGEFILTERTESTRANGE_H
00017 #define INC_SPATMOD_IMAGEFILTERTESTRANGE_H
00018
00019 #ifndef INC_SPATMOD_IMAGEFILTER_H
00020 #include <spatmod/imagefilter.h>
00021 #endif
00022
00023 namespace SPATMOD {
00024 namespace IMAGE {
00025
00026
00027
00031 class FILTER_TESTRANGE : public FILTER {
00032 public:
00033
00035 FILTER_TESTRANGE (
00036 STAGE *pPreviousStage,
00037 bool TakeOwnership,
00038 const PIXEL& MinValue,
00039 const PIXEL& MaxValue,
00040 bool outside = false
00041 );
00042
00045 FILTER_TESTRANGE (
00046 STAGE *pPreviousStage,
00047 bool TakeOwnership,
00048 double MinValue,
00049 double MaxValue,
00050 bool outside = false
00051 );
00052
00054 virtual ~FILTER_TESTRANGE ();
00055
00056 private:
00057 #ifndef GENERATING_DOXYGEN_OUTPUT
00058 PIXEL m_PixelMin;
00059 PIXEL m_PixelMax;
00060 UINT8 **m_TableUINT8;
00061 bool m_Negate;
00062
00063 void ProcessUINT8 (UINT16 SampleIdx, UINT8 *pTgt, const UINT8 *pSrc, UINT32 NumColumns) const;
00064 void ProcessUINT16 (UINT16 SampleIdx, UINT8 *pTgt, const UINT16 *pSrc, UINT32 NumColumns) const;
00065 void ProcessSINT16 (UINT16 SampleIdx, UINT8 *pTgt, const INT16 *pSrc, UINT32 NumColumns) const;
00066 void ProcessUINT32 (UINT16 SampleIdx, UINT8 *pTgt, const UINT32 *pSrc, UINT32 NumColumns) const;
00067 void ProcessSINT32 (UINT16 SampleIdx, UINT8 *pTgt, const INT32 *pSrc, UINT32 NumColumns) const;
00068 void ProcessFloat (UINT16 SampleIdx, UINT8 *pTgt, const float *pSrc, UINT32 NumColumns) const;
00069 void ProcessDouble (UINT16 SampleIdx, UINT8 *pTgt, const double *pSrc, UINT32 NumColumns) const;
00070
00071
00072 virtual ERRVALUE v_PullSubSection (const SECTION& SubSection, BUFFER& buffer);
00073 virtual ERRVALUE v_Initialize ();
00074
00075
00076 FILTER_TESTRANGE (const FILTER_TESTRANGE&);
00077 FILTER_TESTRANGE& operator= (const FILTER_TESTRANGE&);
00078 #endif // GENERATING_DOXYGEN_OUTPUT
00079
00080 };
00081
00082
00083
00084 }
00085 }
00086
00087 #endif // INC_SPATMOD_IMAGEFILTERTESTRANGE_H
00088