]> Creatis software - clitk.git/blob - utilities/CxImage/ximadef.h
f73bcd2a64a558bab419c5f31bdf9bc199ba6f15
[clitk.git] / utilities / CxImage / ximadef.h
1 #if !defined(__ximadefs_h)\r
2 #define __ximadefs_h\r
3 \r
4 #include "ximacfg.h"\r
5 \r
6 #if defined(_AFXDLL)||defined(_USRDLL)\r
7  #define DLL_EXP __declspec(dllexport)\r
8 #elif defined(_MSC_VER)&&(_MSC_VER<1200)\r
9  #define DLL_EXP __declspec(dllimport)\r
10 #else\r
11  #define DLL_EXP\r
12 #endif\r
13 \r
14 \r
15 #if CXIMAGE_SUPPORT_EXCEPTION_HANDLING\r
16   #define cx_try try\r
17   #define cx_throw(message) throw(message)\r
18   #define cx_catch catch (const char *message)\r
19 #else\r
20   #define cx_try bool cx_error=false;\r
21   #define cx_throw(message) {cx_error=true; if(strcmp(message,"")) strncpy(info.szLastError,message,255); goto cx_error_catch;}\r
22   #define cx_catch cx_error_catch: char message[]=""; if(cx_error)\r
23 #endif\r
24 \r
25 \r
26 #if CXIMAGE_SUPPORT_JP2 || CXIMAGE_SUPPORT_JPC || CXIMAGE_SUPPORT_PGX || CXIMAGE_SUPPORT_PNM || CXIMAGE_SUPPORT_RAS\r
27  #define CXIMAGE_SUPPORT_JASPER 1\r
28 #else\r
29  #define CXIMAGE_SUPPORT_JASPER 0\r
30 #endif\r
31 \r
32 #if CXIMAGE_SUPPORT_DSP\r
33 #undef CXIMAGE_SUPPORT_TRANSFORMATION\r
34  #define CXIMAGE_SUPPORT_TRANSFORMATION 1\r
35 #endif\r
36 \r
37 #if CXIMAGE_SUPPORT_TRANSFORMATION || CXIMAGE_SUPPORT_TIF || CXIMAGE_SUPPORT_TGA || CXIMAGE_SUPPORT_BMP || CXIMAGE_SUPPORT_WINDOWS\r
38  #define CXIMAGE_SUPPORT_BASICTRANSFORMATIONS 1\r
39 #endif\r
40 \r
41 #if CXIMAGE_SUPPORT_DSP || CXIMAGE_SUPPORT_TRANSFORMATION\r
42 #undef CXIMAGE_SUPPORT_INTERPOLATION\r
43  #define CXIMAGE_SUPPORT_INTERPOLATION 1\r
44 #endif\r
45 \r
46 #if defined (_WIN32_WCE)\r
47  #undef CXIMAGE_SUPPORT_WMF\r
48  #define CXIMAGE_SUPPORT_WMF 0\r
49 #endif\r
50 \r
51 #if !defined(WIN32) && !defined(_WIN32_WCE)\r
52  #undef CXIMAGE_SUPPORT_WINDOWS\r
53  #define CXIMAGE_SUPPORT_WINDOWS 0\r
54 #endif\r
55 \r
56 #ifndef min\r
57 #define min(a,b) (((a)<(b))?(a):(b))\r
58 #endif\r
59 #ifndef max\r
60 #define max(a,b) (((a)>(b))?(a):(b))\r
61 #endif\r
62 \r
63 #ifndef PI\r
64  #define PI 3.141592653589793f\r
65 #endif\r
66 \r
67 \r
68 #if defined(WIN32) || defined(_WIN32_WCE)\r
69 #include <windows.h>\r
70 #include <tchar.h>\r
71 #endif\r
72 \r
73 #include <stdio.h>\r
74 #include <math.h>\r
75 \r
76 #ifdef __BORLANDC__\r
77 \r
78 #ifndef _COMPLEX_DEFINED\r
79 \r
80 typedef struct tagcomplex {\r
81         double x,y;\r
82 } _complex;\r
83 \r
84 #endif\r
85 \r
86 #define _cabs(c) sqrt(c.x*c.x+c.y*c.y)\r
87 \r
88 #endif\r
89 \r
90 \r
91 #if !defined(WIN32) && !defined(_WIN32_WCE)\r
92 \r
93 #include <stdlib.h>\r
94 #include <string.h>\r
95 #include <ctype.h>\r
96 \r
97 typedef unsigned char  BYTE;\r
98 typedef unsigned short WORD;\r
99 typedef unsigned long  DWORD;\r
100 typedef unsigned int   UINT;\r
101 \r
102 typedef DWORD          COLORREF;\r
103 typedef unsigned int   HANDLE;\r
104 typedef void*          HRGN;\r
105 \r
106 #ifndef BOOL\r
107 #define BOOL bool\r
108 #endif\r
109 \r
110 #ifndef TRUE\r
111 #define TRUE true\r
112 #endif\r
113 \r
114 #ifndef FALSE\r
115 #define FALSE false\r
116 #endif\r
117 \r
118 #ifndef TCHAR\r
119 #define TCHAR char\r
120 #define _T\r
121 #endif\r
122 \r
123 typedef struct tagRECT\r
124 {\r
125         long    left;\r
126         long    top;\r
127         long    right;\r
128         long    bottom;\r
129 } RECT;\r
130 \r
131 typedef struct tagPOINT\r
132 {\r
133         long  x;\r
134         long  y;\r
135 } POINT;\r
136 \r
137 typedef struct tagRGBQUAD {\r
138         BYTE    rgbBlue;\r
139         BYTE    rgbGreen;\r
140         BYTE    rgbRed;\r
141         BYTE    rgbReserved;\r
142 } RGBQUAD;\r
143 \r
144 #pragma pack(1)\r
145 \r
146 typedef struct tagBITMAPINFOHEADER{\r
147         DWORD      biSize;\r
148         long       biWidth;\r
149         long       biHeight;\r
150         WORD       biPlanes;\r
151         WORD       biBitCount;\r
152         DWORD      biCompression;\r
153         DWORD      biSizeImage;\r
154         long       biXPelsPerMeter;\r
155         long       biYPelsPerMeter;\r
156         DWORD      biClrUsed;\r
157         DWORD      biClrImportant;\r
158 } BITMAPINFOHEADER;\r
159 \r
160 typedef struct tagBITMAPFILEHEADER {\r
161         WORD    bfType;\r
162         DWORD   bfSize;\r
163         WORD    bfReserved1;\r
164         WORD    bfReserved2;\r
165         DWORD   bfOffBits;\r
166 } BITMAPFILEHEADER;\r
167 \r
168 typedef struct tagBITMAPCOREHEADER {\r
169         DWORD   bcSize;\r
170         WORD    bcWidth;\r
171         WORD    bcHeight;\r
172         WORD    bcPlanes;\r
173         WORD    bcBitCount;\r
174 } BITMAPCOREHEADER;\r
175 \r
176 typedef struct tagRGBTRIPLE {\r
177         BYTE    rgbtBlue;\r
178         BYTE    rgbtGreen;\r
179         BYTE    rgbtRed;\r
180 } RGBTRIPLE;\r
181 \r
182 #pragma pack()\r
183 \r
184 #define BI_RGB        0L\r
185 #define BI_RLE8       1L\r
186 #define BI_RLE4       2L\r
187 #define BI_BITFIELDS  3L\r
188 \r
189 #define GetRValue(rgb)      ((BYTE)(rgb))\r
190 #define GetGValue(rgb)      ((BYTE)(((WORD)(rgb)) >> 8))\r
191 #define GetBValue(rgb)      ((BYTE)((rgb)>>16))\r
192 #define RGB(r,g,b)          ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))\r
193 \r
194 #ifndef _COMPLEX_DEFINED\r
195 \r
196 typedef struct tagcomplex {\r
197         double x,y;\r
198 } _complex;\r
199 \r
200 #endif\r
201 \r
202 #define _cabs(c) sqrt(c.x*c.x+c.y*c.y)\r
203 \r
204 #endif\r
205 \r
206 #endif //__ximadefs\r