00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012
00013 #ifndef LTI_IMAGE_H
00014 #define LTI_IMAGE_H
00015
00016
00017 #include "lti_types.h"
00018 #include "lti_referenceCountedObject.h"
00019
00020
00021 LT_BEGIN_NAMESPACE(LizardTech)
00022
00023
00032 class LTIImage : public LTIReferenceCountedObject
00033 {
00034 LTI_REFERENCE_COUNTED_BOILERPLATE_BASE(LTIImage);
00035 public:
00043 virtual lt_uint32 getWidth() const = 0;
00044
00052 virtual lt_uint32 getHeight() const = 0;
00053
00065 virtual LT_STATUS getDimsAtMag(double mag,
00066 lt_uint32 &width,
00067 lt_uint32 &height) const = 0;
00068
00079 lt_uint16 getNumBands() const;
00080
00090 LTIColorSpace getColorSpace() const;
00091
00102 LTIDataType getDataType() const;
00103
00112 virtual const LTIPixel& getPixelProps() const = 0;
00113
00123 virtual const LTIPixel* getBackgroundPixel() const = 0;
00124
00134 virtual const LTIPixel* getNoDataPixel() const = 0;
00135
00145 virtual const LTIPixelLookupTable* getPixelLookupTable() const = 0;
00146
00155 virtual const LTIPixel &getMinDynamicRange() const = 0;
00156
00165 virtual const LTIPixel &getMaxDynamicRange() const = 0;
00166
00175 bool isNaturalDynamicRange() const;
00187 virtual const LTIGeoCoord& getGeoCoord() const = 0;
00188
00197 virtual bool isGeoCoordImplicit() const = 0;
00198
00207 virtual const LTIMetadataDatabase &getMetadata() const = 0;
00208
00219 virtual double getMinMagnification() const = 0;
00220
00231 virtual double getMaxMagnification() const = 0;
00232
00244 virtual bool isSelective() const = 0;
00245
00255 virtual lt_uint32 getModifications(const LTIScene &scene) const = 0;
00256
00272 lt_int64 getNominalImageSizeWithoutAlpha() const;
00273
00289 lt_int64 getNominalImageSizeWithAlpha() const;
00290
00300 void getGeoPoint(LTIPosition position, double& x, double& y) const;
00301
00314 LTIPixel* createBackgroundPixel() const;
00315 };
00316
00317 LT_END_NAMESPACE(LizardTech)
00318
00319 #endif // LTI_IMAGE_H