/******************************************************** ** Copyright 2002 Earth Resource Mapping Ltd. ** This document contains proprietary source code of ** Earth Resource Mapping Ltd, and can only be used under ** one of the three licenses as described in the ** license.txt file supplied with this distribution. ** See separate license.txt file for license details ** and conditions. ** ** This software is covered by US patent #6,442,298, ** #6,102,897 and #6,633,688. Rights to use these patents ** is included in the license agreements. ** ** FILE: $Archive: /NCS/Source/include/NCSJPCCODMarker.h $ ** CREATED: 05/12/2002 3:27:34 PM ** AUTHOR: Simon Cope ** PURPOSE: CNCSJPCCODMarker class header ** EDITS: [xx] ddMmmyy NAME COMMENTS *******************************************************/ #ifndef NCSJPCCODMARKER_H #define NCSJPCCODMARKER_H #include "NCSJPCMarker.h" #include "NCSJPCCOCMarker.h" #include "NCSJPCCodingStyleParameter.h" #include "NCSJPCProgressionOrderType.h" /** * CNCSJPCCODMarker class - the JPC COD marker. * * @author Simon Cope * @version $Revision: 1.7 $ $Author: simon $ $Date: 2005/01/17 09:11:17 $ */ class NCSJPC_EXPORT_ALL CNCSJPCCODMarker: public CNCSJPCMarker { public: /** Coding Style flags for Scod field */ typedef struct { bool bDefinedPrecincts: 1; bool bSOPMarkers: 1; bool bEPHMarkers: 1; } CodingStyle; /** SG Parameter values */ typedef struct { /** Progression Order */ CNCSJPCProgressionOrderType m_ProgressionOrder; /** Number of layers, 1-65535 */ UINT16 m_nLayers; /** Multi-Component Transform */ bool m_bMCT; } StyleParameters; /** Coding style for all components */ CodingStyle m_Scod; /** SG Coding style parameters */ StyleParameters m_SGcod; /** SP Coding style parameters */ CNCSJPCCodingStyleParameter m_SPcod; /** Default constructor, initialises members */ CNCSJPCCODMarker(); /** Virtual destructor */ virtual ~CNCSJPCCODMarker(); /** * Parse the marker from the JPC codestream. * @param JPC CNCSJPC to use to parse file. * @param Stream IOStream to use to parse file. * @return CNCSError NCS_SUCCESS, or Error code on failure. */ virtual CNCSError Parse(class CNCSJPC &JPC, CNCSJPCIOStream &Stream); /** * UnParse the marker to the JPC codestream. * @param Stream IOStream to use to parse file. * @param JPC CNCSJPC to use to parse file. * @return CNCSError NCS_SUCCESS, or Error code on failure. */ virtual CNCSError UnParse(class CNCSJPC &JPC, CNCSJPCIOStream &Stream); /** * Assignment operator * @param src COC Marker. * @return CNCSJPCCODMarker Updated CODMarker. */ class CNCSJPCCODMarker& operator=( const class CNCSJPCCOCMarker& src ); }; #endif // !NCSJPCCODMARKER_H