00001 /* $Id$ */ 00002 /* ////////////////////////////////////////////////////////////////////////// 00003 // // 00004 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, // 00005 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution // 00006 // prohibited. Access to and use of this code is permitted only under // 00007 // license from LizardTech, Inc. Portions of the code are protected by // 00008 // US and foreign patents and other filings. All Rights Reserved. // 00009 // // 00011 /* PUBLIC */ 00012 00013 #ifndef LTI_PIXELLOOKUPTABLE_H 00014 #define LTI_PIXELLOOKUPTABLE_H 00015 00016 // lt_lib_mrsid_core 00017 #include "lti_pixel.h" 00018 00019 00020 LT_BEGIN_NAMESPACE(LizardTech) 00021 00022 class LTISceneBuffer; 00023 00024 00031 class LTIPixelLookupTable : public LTIPixel 00032 { 00033 public: 00043 LTIPixelLookupTable(const LTIPixel& pixelProps, 00044 lt_uint32 tableSize); 00045 00049 LTIPixelLookupTable(const LTIPixelLookupTable&); 00050 00054 ~LTIPixelLookupTable(); 00055 00063 lt_uint32 getTableSize() const; 00064 00077 void setTableEntry(lt_uint32 index, 00078 const LTIPixel& pixelData); 00079 00090 void setTableEntries(const void* mapData); 00091 00101 LTIPixel* getTableEntry(lt_uint32 index) const; 00102 00109 const void* getTableEntries() const; 00110 00111 LT_STATUS apply(const LTISceneBuffer &srcData, LTISceneBuffer &dstData) const; 00112 00113 00114 private: 00115 LT_STATUS init(const void* data); 00116 00117 lt_uint32 m_tableSize; 00118 00119 // for an RGB map, entry I is formed by: R=data[I], G=data[I+256], B=data[I+512] 00120 void* m_data; 00121 00122 // nope 00123 LTIPixelLookupTable& operator=(const LTIPixelLookupTable&); 00124 }; 00125 00126 00127 LT_END_NAMESPACE(LizardTech) 00128 00129 #endif // LTI_PIXELLOOKUPTABLE_H
LizardTech |