MrSID Decode SDK for Raster Reference Manual  9.0.0.3864
lti_imageStage.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_IMAGESTAGE_H
14 #define LTI_IMAGESTAGE_H
15 
16 // lt_lib_mrsid_core
17 #include "lti_image.h"
18 
19 LT_BEGIN_NAMESPACE(LizardTech)
20 
21 
28 class LTIImageStage : public LTIImage
29 {
31 public:
46  virtual void setProgressDelegate(LTIProgressDelegate* delegate) = 0;
47 
61  virtual LTIProgressDelegate* getProgressDelegate() const = 0;
62 
77  virtual void setInterruptDelegate(LTIInterruptDelegate* delegate) = 0;
78 
92  virtual LTIInterruptDelegate* getInterruptDelegate() const = 0;
93 
111  LT_STATUS read(const LTIScene& scene,
112  LTISceneBuffer& buffer);
113 
126  virtual LT_STATUS readBegin(const LTIPixel &pixelProps,
127  const LTIScene &fullScene);
128 
148  virtual LT_STATUS readStrip(LTISceneBuffer &buffer,
149  const LTIScene &stripScene);
150 
161  virtual LT_STATUS readEnd();
162 
174  virtual lt_uint32 getStripHeight() const = 0;
175 
188  virtual LT_STATUS setStripHeight(lt_uint32 stripHeight) = 0;
189 
201  virtual lt_int64 getEncodingCost(const LTIScene& scene) const = 0;
202 
214  virtual bool getReaderScene(const LTIScene &decodeScene,
215  LTIScene &readerScene) const = 0;
216 
225  lt_uint32 getNumStrips() const;
226 
237  LTIScene getStripScene(lt_uint32 stripNumber) const;
238 
247  virtual LT_STATUS overrideBackgroundPixel(const LTIPixel *backgroundPixel) = 0;
248 
258  virtual LT_STATUS overrideNoDataPixel(const LTIPixel *nodataPixel) = 0;
259 
268  virtual LT_STATUS overrideGeoCoord(const LTIGeoCoord &geoCoord) = 0;
269 
273  virtual LT_STATUS overrideDynamicRange(const LTIPixel& drmin,
274  const LTIPixel& drmax) = 0;
275 
279  virtual LT_STATUS overridePixelBPS(lt_uint8) = 0;
280 
284  virtual LT_STATUS overridePixelLookupTable(const LTIPixelLookupTable* pixelLookupTable) = 0;
285 
289  virtual LT_STATUS overrideMetadata(const LTIMetadataDatabase &metadata) = 0;
290 
291  // for LizardTech internal use only
292  virtual LTIMaskSource *getMask() const = 0;
293  virtual bool getPipelineInfo(LTIPipelineInfo info) const = 0;
294 protected:
306  LT_STATUS fillBackground(const LTIScene& scene,
307  LTISceneBuffer& buffer);
308 
319  LT_STATUS fillBackground(const LTIScene &scene,
320  LTISceneBuffer &buffer,
321  const LTIPixel &color);
322 
323  bool isBandSelected(const LTIPixel &pixelProps) const;
338  virtual LT_STATUS decodeBegin(const LTIPixel &pixelProps,
339  const LTIScene &fullScene) = 0;
340 
355  virtual LT_STATUS decodeStrip(LTISceneBuffer &stripBuffer,
356  const LTIScene &stripScene) = 0;
357 
370  virtual LT_STATUS decodeEnd(void) = 0;
371 
380  const LTIScene &getFullScene() const;
381 
382 private:
386  LT_STATUS validateReadRequest(const LTIPixel &pixelProps,
387  const LTIScene &scene) const;
388  LT_STATUS validateReadRequest(const LTISceneBuffer &buffer,
389  const LTIScene &scene) const;
390 
391  LT_STATUS checkDelegates(const LTIScene*, bool);
392 
393  struct StripMarcher;
394  StripMarcher* m_stripMarcher;
395 };
396 
397 LT_END_NAMESPACE(LizardTech)
398 
399 #endif // LTI_IMAGESTAGE_H

LizardTech