// // ******************************************************************** // * License and Disclaimer * // * * // * The Geant4 software is copyright of the Copyright Holders of * // * the Geant4 Collaboration. It is provided under the terms and * // * conditions of the Geant4 Software License, included in the file * // * LICENSE and available at http://cern.ch/geant4/license . These * // * include a list of copyright holders. * // * * // * Neither the authors of this software system, nor their employing * // * institutes,nor the agencies providing financial support for this * // * work make any representation or warranty, express or implied, * // * regarding this software system or assume any liability for its * // * use. Please see the license in the file LICENSE and URL above * // * for the full disclaimer and the limitation of liability. * // * * // * This code implementation is the result of the scientific and * // * technical work of the GEANT4 collaboration. * // * By using, copying, modifying or distributing the software (or * // * any work based on the software) you agree to acknowledge its * // * use in resulting scientific publications, and indicate your * // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // // // $Id$ // // // class description: // // This header file defines some static constant variables and error classes // used internally by G4JpegMaker and related classes // #ifndef G4RTJpeg_H #define G4RTJpeg_H 1 typedef unsigned char u_char; typedef unsigned int u_int; const char JFIF[] = "JFIF"; const char JFXX[] = "JFXX"; const double Sqrt2 = 1.41421356; const double DisSqrt2 = 1.0 / Sqrt2; const double PaiDiv16 = 3.14159265 / 16; //Zigzag static const int Zigzag[64] = { 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63 }; //ProcessResult enum jProcessResult{ M_NoError = 0, M_RuntimeError = -1, M_DataError = -2 }; // JpegMarkerCode enum jMarker{ M_SOF0 = 0xc0, M_SOF1 = 0xc1, M_SOF2 = 0xc2, M_SOF3 = 0xc3, M_SOF5 = 0xc5, M_SOF6 = 0xc6, M_SOF7 = 0xc7, M_JPG = 0xc8, M_SOF9 = 0xc9, M_SOF10 = 0xca, M_SOF11 = 0xcb, M_SOF13 = 0xcd, M_SOF14 = 0xce, M_SOF15 = 0xcf, M_DHT = 0xc4, M_DAC = 0xcc, M_RST0 = 0xd0, M_RST1 = 0xd1, M_RST2 = 0xd2, M_RST3 = 0xd3, M_RST4 = 0xd4, M_RST5 = 0xd5, M_RST6 = 0xd6, M_RST7 = 0xd7, M_SOI = 0xd8, M_EOI = 0xd9, M_SOS = 0xda, M_DQT = 0xdb, M_DNL = 0xdc, M_DRI = 0xdd, M_DHP = 0xde, M_EXP = 0xdf, M_COM = 0xfe, M_APP0 = 0xe0, M_APP1 = 0xe1, M_APP2 = 0xe2, M_APP3 = 0xe3, M_APP4 = 0xe4, M_APP5 = 0xe5, M_APP6 = 0xe6, M_APP7 = 0xe7, M_APP8 = 0xe8, M_APP9 = 0xe9, M_APP10 = 0xea, M_APP11 = 0xeb, M_APP12 = 0xec, M_APP13 = 0xed, M_APP14 = 0xee, M_APP15 = 0xef, M_JPG0 = 0xf0, M_JPG1 = 0xf1, M_JPG2 = 0xf2, M_JPG3 = 0xf3, M_JPG4 = 0xf4, M_JPG5 = 0xf5, M_JPG6 = 0xf6, M_JPG7 = 0xf7, M_JPG8 = 0xf8, M_JPG9 = 0xf9, M_JPG10 = 0xfa, M_JPG11 = 0xfb, M_JPG12 = 0xfc, M_JPG13 = 0xfd, M_TEM = 0x01, M_RESst = 0x02, M_RESend = 0xbf, M_Error = 0xff, M_Marker = 0xff }; //JpegProperty struct G4JpegProperty{ G4JpegProperty() :nRow(0) ,nColumn(0) ,Dimension(0) ,SamplePrecision(0) ,Comment(0) ,Format(0) ,MajorRevisions(0) ,MinorRevisions(0) ,Units(0) ,HDensity(0) ,VDensity(0) ,HThumbnail(0) ,VThumbnail(0) ,ExtensionCode(0) {} int nRow; int nColumn; int Dimension; int SamplePrecision; const char * Comment; int Format; u_char MajorRevisions; u_char MinorRevisions; int Units; int HDensity; int VDensity; int HThumbnail; int VThumbnail; int ExtensionCode; }; //MemoryError class G4MemoryError { public: G4MemoryError(int size, const char* message) {mSize = size; mMessage = message;}; int mSize; const char* mMessage; }; //IndexError class G4IndexError { public: G4IndexError(int maxIndex, int errorIndex, const char* mes) {mMaxIndex = maxIndex; mErrorIndex = errorIndex; mMessage = mes;}; int mMaxIndex; int mErrorIndex; const char* mMessage; }; //BufferError class G4BufferError { public: G4BufferError(const char* mes) {mMessage = mes;}; const char* mMessage; }; //DataFormatError class G4DataFormatError { public: G4DataFormatError(void* address, const char* message) {mAddress = address; mMessage = message;}; void* mAddress; const char* mMessage; }; //NotSupported class G4NotSupported { public: G4NotSupported(jMarker aMark, void* address) {mMark = aMark; mAddress = address;}; jMarker mMark; void* mAddress; }; #endif