FEDRA emulsion software from the OPERA Collaboration
MilCal.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /*
3 
4  Filename: MILCAL.H
5  Owner : Matrox Imaging dept.
6  Rev : $Revision: 1.1 $
7  Content : This file contains the defines and the prototypes for the
8  MIL calibration module. (Mcal...).
9 
10  COPYRIGHT (c) 1993-1997 Matrox Electronic Systems Ltd.
11  All Rights Reserved
12 
13 */
14 /***************************************************************************/
15 
16 #ifndef __MILCAL_H__
17 #define __MILCAL_H__
18 
19 #if (!M_MIL_LITE) // MIL FULL ONLY
20 
21 /* C++ directive if needed */
22 #ifdef __cplusplus
23 extern "C"
24 {
25 #endif
26 
27 
28 /***************************************************************************/
29 /* Calibration CAPI defines */
30 /***************************************************************************/
31 
32 /***************************************************************************/
33 /* McalAlloc() */
34 /***************************************************************************/
35 
36 /***************************************************************************/
37 /* McalGrid(), McalList() */
38 /***************************************************************************/
39 
40 /* Calibration type */
41 #define M_LINEAR_INTERPOLATION 0x01L
42 #define M_PERSPECTIVE_TRANSFORMATION 0x02L
43 /* Internal */
44 #define M_TSAI 0x08L
45 /* Calibration grid type */
46 #define M_CIRCLE_GRID 0x001L
47 /* Optional ModeFlag that can be
48  added to the grid type */
49 #define M_Y_AXIS_UP 0x010L
50 #define M_Y_AXIS_DOWN 0x020L
51 
52 
53 /***************************************************************************/
54 /* McalTransformCoordinate() and McalTransformData() */
55 /***************************************************************************/
56 
57 /* Transform type */
58 #define M_PIXEL_TO_WORLD 1L
59 #define M_WORLD_TO_PIXEL 2L
60 
61 /* Aspect ratio pre-correction flags */
62 #define M_PRE_CORRECTED 0x100L
63 
64 /* Data type */
65 #define M_LENGTH_X 0x3L
66 #define M_LENGTH_Y 0x4L
67 #define M_LENGTH 0x00002000L /* (Already defined in milmeas.h) */
68 #define M_AREA 2L /* (Already defined in milblob.h) */
69 #define M_ANGLE 0x00000800L /* (Already defined in milmeas.h) */
70 
71 
72 /***************************************************************************/
73 /* McalControl() and/or McalInquire() */
74 /***************************************************************************/
75 
76 /* Contol parameters. */
77 #define M_FOREGROUND_VALUE 4L
78 #define M_CAMERA_POSITION_X 100L
79 #define M_CAMERA_POSITION_Y 101L
80 #define M_CAMERA_POSITION_Z 102L
81 #define M_TSAI_CENTER_X 103L
82 #define M_TSAI_CENTER_Y 104L
83 #define M_TSAI_CELL_SIZE_X 105L
84 #define M_TSAI_CELL_SIZE_Y 106L
85 #define M_TSAI_NUMBER_CELL_X 107L
86 #define M_TSAI_NUMBER_PIXEL_X 108L
87 #define M_GRID_ORIGIN_X 109L
88 #define M_GRID_ORIGIN_Y 110L
89 #define M_GRID_ORIGIN_Z 111L
90 #define M_RELATIVE_ORIGIN_X 112L
91 #define M_RELATIVE_ORIGIN_Y 113L
92 #define M_RELATIVE_ORIGIN_Z 114L
93 #define M_RELATIVE_ORIGIN_ANGLE 115L
94 #define M_ROW_NUMBER 116L
95 #define M_COLUMN_NUMBER 117L
96 #define M_ROW_SPACING 118L
97 #define M_COLUMN_SPACING 119L
98 #define M_INPUT_COORDINATE_SYSTEM 121L
99 #define M_OUTPUT_COORDINATE_SYSTEM 122L
100 #define M_ASPECT_RATIO 6001L /* (Already defined in mil.h) */
101 #define M_ASPECT_RATIO_AUTO_SETTING 123L
102 #define M_ENHANCED_RESULTS_ACCURACY 124L
103 #define M_ASSOCIATED_CALIBRATION 125L
104 #define M_CORRECTION_STATE 126L
105 #define M_PERSPECTIVE_EFFECT 127L
106 #define M_PARTIALLY_ALIGNED 128L
107 #define M_COMPLETELY_ALIGNED 129L
108 #define M_CALIBRATION_SUCCESSFUL 130L
109 #define M_CALIBRATION_RESET 245L
110 
111 #define M_TRANSFORM_FILL_MODE 131L
112 #define M_TRANSFORM_CACHE 132L
113 #define M_TRANSFORM_AXIS_ALIGNMENT 133L
114 #define M_TRANSFORM_ACCURACY 134L
115 
116 #define M_USER_STRING 136L
117 #define M_USER_STRING_LENGTH 137L
118 
119 #define M_DEBUG_SAVING 138L
120 
121 #define M_PIXEL_SIZE_X 139L
122 #define M_PIXEL_SIZE_Y 140L
123 
124 #define M_CORRECTED_OFFSET_X 141L
125 #define M_CORRECTED_OFFSET_Y 142L
126 
127 #define M_CHILD_CALIBRATION_OFFSET_X 145L
128 #define M_CHILD_CALIBRATION_OFFSET_Y 146L
129 
130 #define M_NUMBER_OF_CALIBRATION_POINTS 200L
131 #define M_CALIBRATION_IMAGE_POINTS_X 201L
132 #define M_CALIBRATION_IMAGE_POINTS_Y 202L
133 #define M_CALIBRATION_WORLD_POINTS_X 203L
134 #define M_CALIBRATION_WORLD_POINTS_Y 204L
135 #define M_CALIBRATION_MODE 205L
136 #define M_GRID_TYPE 206L
137 
138 
139 #define M_AVERAGE_PIXEL_ERROR 0x1000L
140 #define M_MAXIMUM_PIXEL_ERROR 0x2000L
141 #define M_AVERAGE_WORLD_ERROR 0x4000L
142 #define M_MAXIMUM_WORLD_ERROR 0x8000L
143 #define M_ALL_PIXEL_ERRORS 0x3000L
144 #define M_ALL_WORLD_ERRORS 0xC000L
145 #define M_ALL_ERRORS 0xF000L
146 
147 
148 /* Flag that can be added to the contol parameters. */
149 #define M_TYPE_CHAR 0x00010000L /* (Already defined in mil.h) */
150 #define M_TYPE_SHORT 0x00020000L /* (Already defined in mil.h) */
151 #define M_TYPE_LONG 0x00040000L /* (Already defined in mil.h) */
152 #define M_TYPE_FLOAT 0x00080000L /* (Already defined in mil.h) */
153 #define M_TYPE_DOUBLE 0x00100000L /* (Already defined in mil.h) */
154 
155 
156 /* Contol values. */
157 #define M_PIXEL 0x1000L
158 #define M_WORLD 0x2000L
159 #define M_CLIP 0x0010L
160 #define M_FIT 0x0020L
161 #define M_COMPLETE 0x00000000L /* (Already defined in mil.h) */
162 #define M_PARTIAL 0x00000001L /* (Already defined in mil.h) */
163 #define M_ENABLE -9997L /* (Already defined in mil.h) */
164 #define M_DISABLE -9999L /* (Already defined in mil.h) */
165 #define M_FULL_CORRECTION 0x0001L
166 
167 
168 /***************************************************************************/
169 /* McalRestore(), McalSave(), McalStream() */
170 /***************************************************************************/
171 #define M_INTERACTIVE M_NULL // Already defined in mil.h, milcode.h, miledge.h, milmeas.h, milocr.h, milpat.h, milmod.h
172 
173 
174 /***************************************************************************/
175 /* McalTransformImage() */
176 /***************************************************************************/
177 
178 /***************************************************************************/
179 /* Calibration CAPI function prototype */
180 /***************************************************************************/
181 
182 #ifndef __midl // MIDL compiler used by ActiveMIL
183 
184 #ifndef M_MIL_75_COMPATIBLE
185 MFTYPE32 MIL_ID MFTYPE McalAlloc(MIL_ID SystemId,
186  long Mode,
187  long ModeFlag,
188  MIL_ID *ContextIdPtr);
189 #else
190 MFTYPE32 MIL_ID MFTYPE McalAlloc(long Mode,
191  long ModeFlag,
192  MIL_ID *ContextIdPtr);
193 #endif
194 
195 MFTYPE32 MIL_ID MFTYPE McalChild(MIL_ID CalParentId,
196  long lOffX,
197  long lOffY,
198  MIL_ID *ContextIdPtr);
199 
200 MFTYPE32 void MFTYPE McalFree(MIL_ID CalibrationId);
201 
202 MFTYPE32 void MFTYPE McalAssociate(MIL_ID CalibrationId,
203  MIL_ID AppOrMilObjectId,
204  long ControlFlag);
205 
206 MFTYPE32 void MFTYPE McalGrid(MIL_ID CalibrationId,
207  MIL_ID SrcImageId,
208  double GridOffsetX,
209  double GridOffsetY,
210  double GridOffsetZ,
211  long RowNumber,
212  long ColumnNumber,
213  double RowSpacing,
214  double ColumnSpacing,
215  long Mode,
216  long ModeFlag);
217 
218 MFTYPE32 void MFTYPE McalList(MIL_ID CalibrationId,
219  double * XPixArray,
220  double * YPixArray,
221  double * XWorldArray,
222  double * YWorldArray,
223  double * ZWorld,
224  long NumData,
225  long Mode,
226  long ModeFlag);
227 
228 MFTYPE32 void MFTYPE McalRelativeOrigin(MIL_ID CalibrationID,
229  double XOffset,
230  double YOffset,
231  double ZOffset,
232  double AngularOffset,
233  long ControlFlag);
234 
235 MFTYPE32 void MFTYPE McalTransformCoordinate(MIL_ID CalibrationOrImageId,
236  long TransformType,
237  double X,
238  double Y,
239  double * ResXPtr,
240  double * ResYPtr);
241 
242 MFTYPE32 void MFTYPE McalTransformCoordinateList(MIL_ID CalibrationOrImageId,
243  long TransformType,
244  long NumPoints,
245  double *SrcXPtr,
246  double *SrcYPtr,
247  double *ResXPtr,
248  double *ResYPtr);
249 
250 MFTYPE32 void MFTYPE McalTransformResult(MIL_ID CalibrationOrImageId,
251  long TransformType,
252  long DataType,
253  double Data,
254  double * ResData);
255 
256 MFTYPE32 void MFTYPE McalTransformResultInRegion(MIL_ID CalibrationOrImageId,
257  long TransformType,
258  long DataType,
259  long lBoxMinX,
260  long lBoxMinY,
261  long lBoxMaxX,
262  long lBoxMaxY,
263  double Data,
264  double * ResData);
265 
266 MFTYPE32 void MFTYPE McalTransformImage(MIL_ID SrcImageId,
267  MIL_ID DestImageId,
268  MIL_ID CalibrationId,
269  long InterpolationType,
270  long OperationType,
271  long ControlFlag);
272 
273 MFTYPE32 void MFTYPE McalControl(MIL_ID CalibrationId,
274  long Parameter,
275  double Value);
276 
277 MFTYPE32 long MFTYPE McalInquire(MIL_ID CalibrationId,
278  long Parameter,
279  void * ValuePtr);
280 
281 MFTYPE32 void MFTYPE McalSave(MIL_TEXT_PTR FileName,
282  MIL_ID CalibrationId,
283  long ControlFlag);
284 
285 #ifndef M_MIL_75_COMPATIBLE
286 MFTYPE32 MIL_ID MFTYPE McalRestore(MIL_TEXT_PTR FileName,
287  MIL_ID SystemId,
288  long ControlFlag,
289  MIL_ID * CalibrationIdPtr);
290 #else
291 MFTYPE32 MIL_ID MFTYPE McalRestore(MIL_TEXT_PTR FileName,
292  long ControlFlag,
293  MIL_ID * CalibrationIdPtr);
294 #endif
295 
296 
297 MFTYPE32 void MFTYPE McalStream( MIL_TEXT_PTR MemPtrOrFileName,
298  MIL_ID SystemId,
299  long Operation, long StreamType,
300  double Version, long ControlFlag,
301  MIL_ID *ObjectIdPtr );
302 
303 #endif /* #ifdef __midl */
304 
305 /* C++ directive if needed */
306 #ifdef __cplusplus
307 }
308 #endif
309 
310 #endif // !M_MIL_LITE
311 
312 #endif /* __MILCAL_H__ */
long MIL_ID
Definition: AcqOdyssey.h:45
MFTYPE32 void MFTYPE McalControl(MIL_ID CalibrationId, long Parameter, double Value)
MFTYPE32 MIL_ID MFTYPE McalRestore(MIL_TEXT_PTR FileName, MIL_ID SystemId, long ControlFlag, MIL_ID *CalibrationIdPtr)
MFTYPE32 MIL_ID MFTYPE McalAlloc(MIL_ID SystemId, long Mode, long ModeFlag, MIL_ID *ContextIdPtr)
MFTYPE32 void MFTYPE McalTransformCoordinateList(MIL_ID CalibrationOrImageId, long TransformType, long NumPoints, double *SrcXPtr, double *SrcYPtr, double *ResXPtr, double *ResYPtr)
MFTYPE32 void MFTYPE McalTransformCoordinate(MIL_ID CalibrationOrImageId, long TransformType, double X, double Y, double *ResXPtr, double *ResYPtr)
MFTYPE32 void MFTYPE McalAssociate(MIL_ID CalibrationId, MIL_ID AppOrMilObjectId, long ControlFlag)
MFTYPE32 long MFTYPE McalInquire(MIL_ID CalibrationId, long Parameter, void *ValuePtr)
MFTYPE32 void MFTYPE McalTransformResultInRegion(MIL_ID CalibrationOrImageId, long TransformType, long DataType, long lBoxMinX, long lBoxMinY, long lBoxMaxX, long lBoxMaxY, double Data, double *ResData)
MFTYPE32 void MFTYPE McalRelativeOrigin(MIL_ID CalibrationID, double XOffset, double YOffset, double ZOffset, double AngularOffset, long ControlFlag)
MFTYPE32 void MFTYPE McalFree(MIL_ID CalibrationId)
MFTYPE32 void MFTYPE McalList(MIL_ID CalibrationId, double *XPixArray, double *YPixArray, double *XWorldArray, double *YWorldArray, double *ZWorld, long NumData, long Mode, long ModeFlag)
MFTYPE32 MIL_ID MFTYPE McalChild(MIL_ID CalParentId, long lOffX, long lOffY, MIL_ID *ContextIdPtr)
MFTYPE32 void MFTYPE McalStream(MIL_TEXT_PTR MemPtrOrFileName, MIL_ID SystemId, long Operation, long StreamType, double Version, long ControlFlag, MIL_ID *ObjectIdPtr)
MFTYPE32 void MFTYPE McalTransformImage(MIL_ID SrcImageId, MIL_ID DestImageId, MIL_ID CalibrationId, long InterpolationType, long OperationType, long ControlFlag)
MFTYPE32 void MFTYPE McalGrid(MIL_ID CalibrationId, MIL_ID SrcImageId, double GridOffsetX, double GridOffsetY, double GridOffsetZ, long RowNumber, long ColumnNumber, double RowSpacing, double ColumnSpacing, long Mode, long ModeFlag)
MFTYPE32 void MFTYPE McalTransformResult(MIL_ID CalibrationOrImageId, long TransformType, long DataType, double Data, double *ResData)
MFTYPE32 void MFTYPE McalSave(MIL_TEXT_PTR FileName, MIL_ID CalibrationId, long ControlFlag)
char * MIL_TEXT_PTR
Definition: Milos.h:90
@ Data
Definition: tlg2pattern.C:54
Double_t X
Definition: tlg2pattern.C:77
Double_t Y
Definition: tlg2pattern.C:77