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
23extern "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
185MFTYPE32 MIL_ID MFTYPE McalAlloc(MIL_ID SystemId,
186 long Mode,
187 long ModeFlag,
188 MIL_ID *ContextIdPtr);
189#else
190MFTYPE32 MIL_ID MFTYPE McalAlloc(long Mode,
191 long ModeFlag,
192 MIL_ID *ContextIdPtr);
193#endif
194
195MFTYPE32 MIL_ID MFTYPE McalChild(MIL_ID CalParentId,
196 long lOffX,
197 long lOffY,
198 MIL_ID *ContextIdPtr);
199
200MFTYPE32 void MFTYPE McalFree(MIL_ID CalibrationId);
201
202MFTYPE32 void MFTYPE McalAssociate(MIL_ID CalibrationId,
203 MIL_ID AppOrMilObjectId,
204 long ControlFlag);
205
206MFTYPE32 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
218MFTYPE32 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
228MFTYPE32 void MFTYPE McalRelativeOrigin(MIL_ID CalibrationID,
229 double XOffset,
230 double YOffset,
231 double ZOffset,
232 double AngularOffset,
233 long ControlFlag);
234
235MFTYPE32 void MFTYPE McalTransformCoordinate(MIL_ID CalibrationOrImageId,
236 long TransformType,
237 double X,
238 double Y,
239 double * ResXPtr,
240 double * ResYPtr);
241
242MFTYPE32 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
250MFTYPE32 void MFTYPE McalTransformResult(MIL_ID CalibrationOrImageId,
251 long TransformType,
252 long DataType,
253 double Data,
254 double * ResData);
255
256MFTYPE32 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
266MFTYPE32 void MFTYPE McalTransformImage(MIL_ID SrcImageId,
267 MIL_ID DestImageId,
268 MIL_ID CalibrationId,
269 long InterpolationType,
270 long OperationType,
271 long ControlFlag);
272
273MFTYPE32 void MFTYPE McalControl(MIL_ID CalibrationId,
274 long Parameter,
275 double Value);
276
277MFTYPE32 long MFTYPE McalInquire(MIL_ID CalibrationId,
278 long Parameter,
279 void * ValuePtr);
280
281MFTYPE32 void MFTYPE McalSave(MIL_TEXT_PTR FileName,
282 MIL_ID CalibrationId,
283 long ControlFlag);
284
285#ifndef M_MIL_75_COMPATIBLE
286MFTYPE32 MIL_ID MFTYPE McalRestore(MIL_TEXT_PTR FileName,
287 MIL_ID SystemId,
288 long ControlFlag,
289 MIL_ID * CalibrationIdPtr);
290#else
291MFTYPE32 MIL_ID MFTYPE McalRestore(MIL_TEXT_PTR FileName,
292 long ControlFlag,
293 MIL_ID * CalibrationIdPtr);
294#endif
295
296
297MFTYPE32 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: tlg2couples.C:53
Double_t X
Definition: tlg2couples.C:76
Double_t Y
Definition: tlg2couples.C:76