MrSID Decode SDK for Raster Reference Manual 9.5.4.4709

- Main Page
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

lti_imageFilter.h
Go to the documentation of this file.
1 /* $Id$ */
2 /* //////////////////////////////////////////////////////////////////////////
3 // //
4 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, //
5 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
6 // prohibited. Access to and use of this code is permitted only under //
7 // license from LizardTech, Inc. Portions of the code are protected by //
8 // US and foreign patents and other filings. All Rights Reserved. //
9 // //
11 /* PUBLIC */
12
13 #ifndef LTI_IMAGEFILTER_H
14 #define LTI_IMAGEFILTER_H
15
16 // lt_lib_mrsid_core
17 #include "lti_imageStage.h"
18 #include "lti_imageStageOverrides.h"
19
20 LT_BEGIN_NAMESPACE(LizardTech)
21
22
29 class LTIImageFilter : public LTIImageStage
30 {
31 LTI_REFERENCE_COUNTED_BOILERPLATE_BASE(LTIImageFilter);
32 public:
33 // LTIImage
34 lt_uint32 getWidth() const;
35 lt_uint32 getHeight() const;
36 LT_STATUS getDimsAtMag(double mag,
37 lt_uint32 &width,
38 lt_uint32 &height) const;
39 const LTIPixel &getPixelProps() const;
40 const LTIPixel *getBackgroundPixel() const;
41 const LTIPixel *getNoDataPixel() const;
42 const LTIPixelLookupTable *getPixelLookupTable() const;
43 const LTIPixel &getMinDynamicRange() const;
44 const LTIPixel &getMaxDynamicRange() const;
45 const LTIGeoCoord &getGeoCoord() const;
46 bool isGeoCoordImplicit() const;
47 const LTIMetadataDatabase &getMetadata() const;
48 double getMinMagnification() const;
49 double getMaxMagnification() const;
50 bool isSelective() const;
51 lt_uint32 getModifications(const LTIScene &scene) const;
52 LT_STATUS getMetadataBlob(const char *type, LTIOStreamInf *&stream) const;
53
54
55
56 // LTIImageStage
57 void setProgressDelegate(LTIProgressDelegate* delegate);
58 LTIProgressDelegate* getProgressDelegate() const;
59 void setInterruptDelegate(LTIInterruptDelegate* delegate);
60 LTIInterruptDelegate* getInterruptDelegate() const;
61 lt_uint32 getStripHeight() const;
62 LT_STATUS setStripHeight(lt_uint32 stripHeight);
63 lt_int64 getEncodingCost(const LTIScene& scene) const;
64 bool getReaderScene(const LTIScene &decodeScene,
65 LTIScene &readerScene) const;
66
67 LT_STATUS overrideBackgroundPixel(const LTIPixel *backgroundPixel);
68 LT_STATUS overrideNoDataPixel(const LTIPixel *nodataPixel);
69 LT_STATUS overrideGeoCoord(const LTIGeoCoord &geoCoord);
70 LT_STATUS overrideDynamicRange(const LTIPixel& drmin,
71 const LTIPixel& drmax);
72 LT_STATUS overridePixelBPS(lt_uint8);
73 LT_STATUS overridePixelLookupTable(const LTIPixelLookupTable* pixelLookupTable);
74 LT_STATUS overrideMetadata(const LTIMetadataDatabase &metadata);
75 LTIMaskSource *getMask() const;
76 bool getPipelineInfo(LTIPipelineInfo info) const;
77
78 LTIImageStage *getPreviousStage(void) const;
79 protected:
80 LT_STATUS decodeBegin(const LTIPixel &pixelProps,
81 const LTIScene &fullScene);
82 LT_STATUS decodeStrip(LTISceneBuffer &stripBuffer,
83 const LTIScene &stripScene);
84 LT_STATUS decodeEnd(void);
85
86 protected:
87 LT_STATUS init(LTIImageStage *previousStage);
88
89 // HACK: use when the filter owns resources needed by the previousStage
90 void releasePreviousStageNow(void);
91
92 // Changes the prev pointer of this filter. Probably not a good idea.
93 void changePreviousStage(LTIImageStage* newPref);
94
95 private:
96 LTIImageStage* m_previousStage;
97 };
98
99
100 LT_END_NAMESPACE(LizardTech)
101
102 #endif // LTI_IMAGEFILTER_H

LizardTech