MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
GraphicSegment.h
Go to the documentation of this file.
00001 /* //////////////////////////////////////////////////////////////////////////
00002 //                                                                         //
00003 // This code is Copyright (c) 2010 LizardTech, Inc, 1008 Western Avenue,   //
00004 // Suite 200, Seattle, WA 98104.  Unauthorized use or distribution         //
00005 // prohibited.  Access to and use of this code is permitted only under     //
00006 // license from LizardTech, Inc.  Portions of the code are protected by    //
00007 // US and foreign patents and other filings. All Rights Reserved.          //
00008 //                                                                         //
00010 /* PUBLIC */
00011 
00012 #ifndef GraphicSegment_H
00013 #define GraphicSegment_H
00014 
00015 // lt_lib_base
00016 #include "lt_base.h"
00017 
00018 // local
00019 #include "Segment.h"
00020 
00021 LT_BEGIN_LIZARDTECH_NAMESPACE
00022 class LTIOStreamInf;
00023 
00024 namespace Nitf {
00025 
00026 
00037 class GraphicSegment : public Segment
00038 {
00039 public:
00040    // not for public use -- to get a DataSegment, use NITFReaderManager::getGraphicSegment
00041    GraphicSegment(NITFReaderManager&, LTIOStreamInf&,
00042                   int segmentNumber,
00043                   lt_int64 headerOffset, lt_int64 headerLength,
00044                   lt_int64 dataOffset, lt_int64 dataLength);
00045    ~GraphicSegment();
00046 
00047    // not for public use
00048    LT_STATUS initialize();
00049 
00058    lt_uint8* getGraphicData(lt_uint32& graphicDataLen) const;
00059 
00060    // not for public use
00061    LT_STATUS addMetadataLocal(LTIMetadataDatabase& db) const;
00062 
00063 private:
00064    LT_STATUS readHeader();
00065    LT_STATUS readData();
00066 
00067    char* m_SID;      // 10
00068    char* m_SNAME;    // 20
00069    char* m_STYPE;    // 1
00070    char* m_SSTRUCT;  // 13
00071    int m_NLIPS;
00072    int m_NPIXPL;
00073    int m_NWDTH;
00074    int m_NBPP;
00075 
00076    int m_SDLVL;
00077    int m_SALVL;
00078    int m_SLOCr;
00079    int m_SLOCc;
00080    char* m_SBND1;    // 10
00081    char* m_SCOLOR;   // 1
00082    char* m_SBND2;    // 10
00083    char* m_SRES2;    // 2
00084 
00085    int m_SNUM;
00086    int m_SROT;
00087    int m_NELUT;
00088    lt_uint8* m_DLUT;
00089 
00090    lt_uint8* m_graphicData;
00091    lt_uint32 m_graphicDataLen;
00092 
00093    // nope
00094    GraphicSegment(GraphicSegment&);
00095    GraphicSegment& operator=(const GraphicSegment&);
00096 };
00097 
00098 
00099 }
00100 LT_END_LIZARDTECH_NAMESPACE
00101 
00102 #endif // GraphicSegment_H