Geant4-11
G4RTJpeg.hh
Go to the documentation of this file.
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
39typedef unsigned char u_char;
40typedef unsigned int u_int;
41
42const char JFIF[] = "JFIF";
43const char JFXX[] = "JFXX";
44
45const double Sqrt2 = 1.41421356;
46const double DisSqrt2 = 1.0 / Sqrt2;
47const double PaiDiv16 = 3.14159265 / 16;
48
49//Zigzag
50static 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
62enum
66 M_DataError = -2
67};
68
69// JpegMarkerCode
70enum
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
136
137//JpegProperty
138struct
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;
160 const char * Comment;
164 int Units;
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;};
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;};
221 void* mAddress;
222};
223
224#endif
jMarker
Definition: G4RTJpeg.hh:71
@ M_RST4
Definition: G4RTJpeg.hh:97
@ M_COM
Definition: G4RTJpeg.hh:108
@ M_RST5
Definition: G4RTJpeg.hh:97
@ M_DNL
Definition: G4RTJpeg.hh:104
@ M_SOF14
Definition: G4RTJpeg.hh:88
@ M_APP3
Definition: G4RTJpeg.hh:111
@ M_SOF7
Definition: G4RTJpeg.hh:80
@ M_JPG4
Definition: G4RTJpeg.hh:122
@ M_EOI
Definition: G4RTJpeg.hh:101
@ M_APP11
Definition: G4RTJpeg.hh:115
@ M_JPG10
Definition: G4RTJpeg.hh:125
@ M_JPG8
Definition: G4RTJpeg.hh:124
@ M_Error
Definition: G4RTJpeg.hh:133
@ M_APP1
Definition: G4RTJpeg.hh:110
@ M_Marker
Definition: G4RTJpeg.hh:134
@ M_JPG3
Definition: G4RTJpeg.hh:121
@ M_APP12
Definition: G4RTJpeg.hh:116
@ M_APP2
Definition: G4RTJpeg.hh:111
@ M_APP13
Definition: G4RTJpeg.hh:116
@ M_RST3
Definition: G4RTJpeg.hh:96
@ M_APP9
Definition: G4RTJpeg.hh:114
@ M_JPG11
Definition: G4RTJpeg.hh:125
@ M_DQT
Definition: G4RTJpeg.hh:103
@ M_DHT
Definition: G4RTJpeg.hh:91
@ M_SOF3
Definition: G4RTJpeg.hh:76
@ M_SOF2
Definition: G4RTJpeg.hh:75
@ M_APP14
Definition: G4RTJpeg.hh:117
@ M_DAC
Definition: G4RTJpeg.hh:93
@ M_SOF6
Definition: G4RTJpeg.hh:79
@ M_APP6
Definition: G4RTJpeg.hh:113
@ M_RST0
Definition: G4RTJpeg.hh:95
@ M_APP8
Definition: G4RTJpeg.hh:114
@ M_SOF15
Definition: G4RTJpeg.hh:89
@ M_SOI
Definition: G4RTJpeg.hh:100
@ M_JPG6
Definition: G4RTJpeg.hh:123
@ M_RST7
Definition: G4RTJpeg.hh:98
@ M_DRI
Definition: G4RTJpeg.hh:105
@ M_SOF9
Definition: G4RTJpeg.hh:83
@ M_JPG
Definition: G4RTJpeg.hh:82
@ M_RESst
Definition: G4RTJpeg.hh:130
@ M_JPG9
Definition: G4RTJpeg.hh:124
@ M_APP10
Definition: G4RTJpeg.hh:115
@ M_SOF10
Definition: G4RTJpeg.hh:84
@ M_SOF11
Definition: G4RTJpeg.hh:85
@ M_TEM
Definition: G4RTJpeg.hh:129
@ M_EXP
Definition: G4RTJpeg.hh:107
@ M_JPG12
Definition: G4RTJpeg.hh:126
@ M_SOF13
Definition: G4RTJpeg.hh:87
@ M_JPG7
Definition: G4RTJpeg.hh:123
@ M_JPG0
Definition: G4RTJpeg.hh:120
@ M_RST6
Definition: G4RTJpeg.hh:98
@ M_APP4
Definition: G4RTJpeg.hh:112
@ M_JPG2
Definition: G4RTJpeg.hh:121
@ M_RESend
Definition: G4RTJpeg.hh:131
@ M_JPG5
Definition: G4RTJpeg.hh:122
@ M_APP5
Definition: G4RTJpeg.hh:112
@ M_SOF1
Definition: G4RTJpeg.hh:74
@ M_SOS
Definition: G4RTJpeg.hh:102
@ M_APP7
Definition: G4RTJpeg.hh:113
@ M_SOF0
Definition: G4RTJpeg.hh:73
@ M_JPG1
Definition: G4RTJpeg.hh:120
@ M_APP0
Definition: G4RTJpeg.hh:110
@ M_APP15
Definition: G4RTJpeg.hh:117
@ M_RST2
Definition: G4RTJpeg.hh:96
@ M_SOF5
Definition: G4RTJpeg.hh:78
@ M_RST1
Definition: G4RTJpeg.hh:95
@ M_JPG13
Definition: G4RTJpeg.hh:126
@ M_DHP
Definition: G4RTJpeg.hh:106
const double DisSqrt2
Definition: G4RTJpeg.hh:46
const double PaiDiv16
Definition: G4RTJpeg.hh:47
const char JFIF[]
Definition: G4RTJpeg.hh:42
jProcessResult
Definition: G4RTJpeg.hh:63
@ M_RuntimeError
Definition: G4RTJpeg.hh:65
@ M_DataError
Definition: G4RTJpeg.hh:66
@ M_NoError
Definition: G4RTJpeg.hh:64
static const int Zigzag[64]
Definition: G4RTJpeg.hh:50
unsigned int u_int
Definition: G4RTJpeg.hh:40
const char JFXX[]
Definition: G4RTJpeg.hh:43
unsigned char u_char
Definition: G4RTJpeg.hh:39
const double Sqrt2
Definition: G4RTJpeg.hh:45
G4BufferError(const char *mes)
Definition: G4RTJpeg.hh:198
const char * mMessage
Definition: G4RTJpeg.hh:199
const char * mMessage
Definition: G4RTJpeg.hh:210
G4DataFormatError(void *address, const char *message)
Definition: G4RTJpeg.hh:207
G4IndexError(int maxIndex, int errorIndex, const char *mes)
Definition: G4RTJpeg.hh:187
const char * mMessage
Definition: G4RTJpeg.hh:191
int mErrorIndex
Definition: G4RTJpeg.hh:190
const char * mMessage
Definition: G4RTJpeg.hh:180
G4MemoryError(int size, const char *message)
Definition: G4RTJpeg.hh:177
jMarker mMark
Definition: G4RTJpeg.hh:219
G4NotSupported(jMarker aMark, void *address)
Definition: G4RTJpeg.hh:218
void * mAddress
Definition: G4RTJpeg.hh:221
int SamplePrecision
Definition: G4RTJpeg.hh:159
const char * Comment
Definition: G4RTJpeg.hh:160
u_char MinorRevisions
Definition: G4RTJpeg.hh:163
u_char MajorRevisions
Definition: G4RTJpeg.hh:162