source: trunk/source/visualization/RayTracer/include/G4RTJpeg.hh @ 1347

Last change on this file since 1347 was 1347, checked in by garnier, 13 years ago

geant4 tag 9.4

File size: 5.7 KB
Line 
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// $Id: G4RTJpeg.hh,v 1.6 2006/06/29 21:23:13 gunter Exp $
28// GEANT4 tag $Name: geant4-09-04-ref-00 $
29//
30//
31
32// class description:
33//
34//  This header file defines some static constant variables and error classes
35// used internally by G4JpegMaker and related classes
36//
37
38#ifndef G4RTJpeg_H
39#define G4RTJpeg_H 1
40
41typedef unsigned char   u_char;
42typedef unsigned int    u_int;
43
44const char      JFIF[] = "JFIF";
45const char      JFXX[] = "JFXX";
46
47const double    Sqrt2 = 1.41421356;
48const double    DisSqrt2 = 1.0 / Sqrt2;
49const double    PaiDiv16 = 3.14159265 / 16;
50
51//Zigzag
52static const int Zigzag[64] = {
53                 0,  1,  8, 16,  9,  2,  3, 10,
54                17, 24, 32, 25, 18, 11,  4,  5,
55                12, 19, 26, 33, 40, 48, 41, 34,
56                27, 20, 13,  6,  7, 14, 21, 28,
57                35, 42, 49, 56, 57, 50, 43, 36,
58                29, 22, 15, 23, 30, 37, 44, 51,
59                58, 59, 52, 45, 38, 31, 39, 46,
60                53, 60, 61, 54, 47, 55, 62, 63
61};
62
63//ProcessResult
64enum
65jProcessResult{
66  M_NoError = 0,
67  M_RuntimeError = -1,
68  M_DataError = -2
69};
70
71// JpegMarkerCode
72enum
73jMarker{
74
75        M_SOF0  = 0xc0,
76        M_SOF1  = 0xc1,
77        M_SOF2  = 0xc2,
78        M_SOF3  = 0xc3,
79
80        M_SOF5  = 0xc5,
81        M_SOF6  = 0xc6,
82        M_SOF7  = 0xc7,
83
84        M_JPG   = 0xc8,
85        M_SOF9  = 0xc9,
86        M_SOF10 = 0xca,
87        M_SOF11 = 0xcb,
88
89        M_SOF13 = 0xcd,
90        M_SOF14 = 0xce,
91        M_SOF15 = 0xcf,
92
93        M_DHT   = 0xc4,
94
95        M_DAC   = 0xcc,
96
97        M_RST0  = 0xd0,         M_RST1  = 0xd1,
98        M_RST2  = 0xd2,         M_RST3  = 0xd3,
99        M_RST4  = 0xd4,         M_RST5  = 0xd5,
100        M_RST6  = 0xd6,         M_RST7  = 0xd7,
101
102        M_SOI   = 0xd8,
103        M_EOI   = 0xd9,
104        M_SOS   = 0xda,
105        M_DQT   = 0xdb,
106        M_DNL   = 0xdc,
107        M_DRI   = 0xdd,
108        M_DHP   = 0xde,
109        M_EXP   = 0xdf,
110        M_COM   = 0xfe,
111
112        M_APP0  = 0xe0,         M_APP1  = 0xe1,
113        M_APP2  = 0xe2,         M_APP3  = 0xe3,
114        M_APP4  = 0xe4,         M_APP5  = 0xe5,
115        M_APP6  = 0xe6,         M_APP7  = 0xe7,
116        M_APP8  = 0xe8,         M_APP9  = 0xe9,
117        M_APP10 = 0xea,         M_APP11 = 0xeb,
118        M_APP12 = 0xec,         M_APP13 = 0xed,
119        M_APP14 = 0xee,         M_APP15 = 0xef,
120
121
122        M_JPG0  = 0xf0,         M_JPG1  = 0xf1,
123        M_JPG2  = 0xf2,         M_JPG3  = 0xf3,
124        M_JPG4  = 0xf4,         M_JPG5  = 0xf5,
125        M_JPG6  = 0xf6,         M_JPG7  = 0xf7,
126        M_JPG8  = 0xf8,         M_JPG9  = 0xf9,
127        M_JPG10 = 0xfa,         M_JPG11 = 0xfb,
128        M_JPG12 = 0xfc,         M_JPG13 = 0xfd,
129
130
131        M_TEM   = 0x01,
132        M_RESst  = 0x02,
133        M_RESend = 0xbf,
134
135        M_Error  = 0xff,
136        M_Marker  = 0xff
137};
138
139//JpegProperty
140struct
141G4JpegProperty{
142  int nRow;
143  int nColumn;
144  int Dimension;
145  int SamplePrecision;
146  const char * Comment;
147  int Format;
148  u_char MajorRevisions;
149  u_char MinorRevisions;
150  int Units;
151  int HDensity;
152  int VDensity;
153  int HThumbnail;
154  int VThumbnail;
155  int ExtensionCode;
156};
157
158
159//MemoryError
160class G4MemoryError
161{
162  public:
163    G4MemoryError(int size, const char* message)
164        {mSize = size;          mMessage = message;};
165        int mSize;
166        const char* mMessage;
167};
168
169//IndexError
170class G4IndexError
171{
172  public:
173    G4IndexError(int maxIndex, int errorIndex, const char* mes)
174        {mMaxIndex = maxIndex;  mErrorIndex = errorIndex;  mMessage = mes;};
175        int mMaxIndex;
176        int mErrorIndex;
177        const char* mMessage;
178};
179
180//BufferError
181class G4BufferError
182{
183  public:
184    G4BufferError(const char* mes)
185        {mMessage = mes;};
186        const char* mMessage;
187};
188
189//DataFormatError
190class G4DataFormatError
191{
192  public:
193    G4DataFormatError(void* address, const char* message)
194        {mAddress = address;            mMessage = message;};
195        void* mAddress;
196        const char* mMessage;
197};
198
199
200//NotSupported
201class G4NotSupported
202{
203  public:
204    G4NotSupported(jMarker aMark, void* address)
205        {mMark = aMark;         mAddress = address;};
206        jMarker mMark;
207        void* mAddress;
208};
209
210#endif
Note: See TracBrowser for help on using the repository browser.