ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4RTJpeg.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4RTJpeg.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 //
28 //
29 
30 // class description:
31 //
32 // This header file defines some static constant variables and error classes
33 // used internally by G4JpegMaker and related classes
34 //
35 
36 #ifndef G4RTJpeg_H
37 #define G4RTJpeg_H 1
38 
39 typedef unsigned char u_char;
40 typedef unsigned int u_int;
41 
42 const char JFIF[] = "JFIF";
43 const char JFXX[] = "JFXX";
44 
45 const double Sqrt2 = 1.41421356;
46 const double DisSqrt2 = 1.0 / Sqrt2;
47 const double PaiDiv16 = 3.14159265 / 16;
48 
49 //Zigzag
50 static const int Zigzag[64] = {
51  0, 1, 8, 16, 9, 2, 3, 10,
52  17, 24, 32, 25, 18, 11, 4, 5,
53  12, 19, 26, 33, 40, 48, 41, 34,
54  27, 20, 13, 6, 7, 14, 21, 28,
55  35, 42, 49, 56, 57, 50, 43, 36,
56  29, 22, 15, 23, 30, 37, 44, 51,
57  58, 59, 52, 45, 38, 31, 39, 46,
58  53, 60, 61, 54, 47, 55, 62, 63
59 };
60 
61 //ProcessResult
62 enum
64  M_NoError = 0,
67 };
68 
69 // JpegMarkerCode
70 enum
71 jMarker{
72 
73  M_SOF0 = 0xc0,
74  M_SOF1 = 0xc1,
75  M_SOF2 = 0xc2,
76  M_SOF3 = 0xc3,
77 
78  M_SOF5 = 0xc5,
79  M_SOF6 = 0xc6,
80  M_SOF7 = 0xc7,
81 
82  M_JPG = 0xc8,
83  M_SOF9 = 0xc9,
84  M_SOF10 = 0xca,
85  M_SOF11 = 0xcb,
86 
87  M_SOF13 = 0xcd,
88  M_SOF14 = 0xce,
89  M_SOF15 = 0xcf,
90 
91  M_DHT = 0xc4,
92 
93  M_DAC = 0xcc,
94 
95  M_RST0 = 0xd0, M_RST1 = 0xd1,
96  M_RST2 = 0xd2, M_RST3 = 0xd3,
97  M_RST4 = 0xd4, M_RST5 = 0xd5,
98  M_RST6 = 0xd6, M_RST7 = 0xd7,
99 
100  M_SOI = 0xd8,
101  M_EOI = 0xd9,
102  M_SOS = 0xda,
103  M_DQT = 0xdb,
104  M_DNL = 0xdc,
105  M_DRI = 0xdd,
106  M_DHP = 0xde,
107  M_EXP = 0xdf,
108  M_COM = 0xfe,
109 
110  M_APP0 = 0xe0, M_APP1 = 0xe1,
111  M_APP2 = 0xe2, M_APP3 = 0xe3,
112  M_APP4 = 0xe4, M_APP5 = 0xe5,
113  M_APP6 = 0xe6, M_APP7 = 0xe7,
114  M_APP8 = 0xe8, M_APP9 = 0xe9,
115  M_APP10 = 0xea, M_APP11 = 0xeb,
116  M_APP12 = 0xec, M_APP13 = 0xed,
117  M_APP14 = 0xee, M_APP15 = 0xef,
118 
119 
120  M_JPG0 = 0xf0, M_JPG1 = 0xf1,
121  M_JPG2 = 0xf2, M_JPG3 = 0xf3,
122  M_JPG4 = 0xf4, M_JPG5 = 0xf5,
123  M_JPG6 = 0xf6, M_JPG7 = 0xf7,
124  M_JPG8 = 0xf8, M_JPG9 = 0xf9,
125  M_JPG10 = 0xfa, M_JPG11 = 0xfb,
126  M_JPG12 = 0xfc, M_JPG13 = 0xfd,
127 
128 
129  M_TEM = 0x01,
130  M_RESst = 0x02,
131  M_RESend = 0xbf,
132 
133  M_Error = 0xff,
134  M_Marker = 0xff
135 };
136 
137 //JpegProperty
138 struct
141  :nRow(0)
142  ,nColumn(0)
143  ,Dimension(0)
144  ,SamplePrecision(0)
145  ,Comment(0)
146  ,Format(0)
147  ,MajorRevisions(0)
148  ,MinorRevisions(0)
149  ,Units(0)
150  ,HDensity(0)
151  ,VDensity(0)
152  ,HThumbnail(0)
153  ,VThumbnail(0)
154  ,ExtensionCode(0)
155  {}
156  int nRow;
157  int nColumn;
160  const char * Comment;
161  int Format;
164  int Units;
165  int HDensity;
166  int VDensity;
170 };
171 
172 
173 //MemoryError
175 {
176  public:
177  G4MemoryError(int size, const char* message)
178  {mSize = size; mMessage = message;};
179  int mSize;
180  const char* mMessage;
181 };
182 
183 //IndexError
185 {
186  public:
187  G4IndexError(int maxIndex, int errorIndex, const char* mes)
188  {mMaxIndex = maxIndex; mErrorIndex = errorIndex; mMessage = mes;};
189  int mMaxIndex;
191  const char* mMessage;
192 };
193 
194 //BufferError
196 {
197  public:
198  G4BufferError(const char* mes)
199  {mMessage = mes;};
200  const char* mMessage;
201 };
202 
203 //DataFormatError
205 {
206  public:
207  G4DataFormatError(void* address, const char* message)
208  {mAddress = address; mMessage = message;};
209  void* mAddress;
210  const char* mMessage;
211 };
212 
213 
214 //NotSupported
216 {
217  public:
218  G4NotSupported(jMarker aMark, void* address)
219  {mMark = aMark; mAddress = address;};
220  jMarker mMark;
221  void* mAddress;
222 };
223 
224 #endif