MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
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"
19 
21 
22 
30 {
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 
101 
102 #endif // LTI_IMAGEFILTER_H
representation of a scene
Definition: lti_scene.h:64
#define LT_END_NAMESPACE(theNameSpace)
compiler does not support namespaces
Definition: lt_define.h:85
#define LTI_REFERENCE_COUNTED_BOILERPLATE_BASE(classname)
Macros for defining boilerplate parts of derived LTIReferenceCountedObject classes.
represents a geographic coordinate
Definition: lti_geoCoord.h:32
color lookup table
lt_uint32 LT_STATUS
An integral status code.
Definition: lt_status.h:39
abstract class for implementing an image transform
Abstract definition of a stream.
class for storing metadata associated with an image
basic properties of a pixel
Definition: lti_pixel.h:36
class to hold data passed between image stages
LTIPipelineInfo
Definition: lti_types.h:228
abstract class for decoding from an image
#define LT_BEGIN_NAMESPACE(theNameSpace)
compiler does not support namespaces
Definition: lt_define.h:84
unsigned int lt_uint32
unsigned 32-bit integer
Definition: lt_types.h:54
interrupt delegate (callback) base class
Definition: lti_delegates.h:39
unsigned char lt_uint8
unsigned 8-bit integer
Definition: lt_types.h:46
progress delegate (callback) base class
Definition: lti_delegates.h:72

LizardTech