FEDRA emulsion software from the OPERA Collaboration
milmeas.h
Go to the documentation of this file.
1/***************************************************************************/
2/*
3
4 Filename: MILMEAS.H
5 Owner : Matrox Imaging dept.
6 Rev : $Revision: 1.1 $
7 Content : This file contains the defines for the MIL measurement
8 module. (Mmeas...).
9
10 COPYRIGHT (c) 1993 Matrox Electronic Systems Ltd.
11 All Rights Reserved
12
13*/
14/***************************************************************************/
15
16#ifndef __MILMEAS_H__
17#define __MILMEAS_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
28// WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
29//
30// If we get any warning with any of these defines, then there are
31// important changes to do with the Save and Restore functions.
32//
33// When it happens, you will have to declare the current define as "old"
34// and redeclare the define with the new value. Then you will have to
35// modify both the Save and the Restore functions so that they use the good
36// define depending on the version.
37// This is important because it will affect both backward and forward
38// compatibility with other versions of MIL.
39//
40// WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
42
43/**************************************************************************/
44/* CAPI defines */
45/**************************************************************************/
46
47/**************************************************************************/
48/* MmeasAllocMarker */
49/**************************************************************************/
50
51#define M_POINT 1L
52#define M_EDGE 2L
53#define M_STRIPE 3L
54#define M_CIRCLE 0x00000008L // 8 Already defined in milmod.h
55#define M_EDGE_LIST M_EDGE
56#define M_STRIPE_LIST M_STRIPE
57
58
59/**************************************************************************/
60/* MmeasAllocResult */
61/**************************************************************************/
62#define M_CALCULATE 1L
63
64
65/**************************************************************************/
66/* Bitwise values that the followings cannot take */
67/**************************************************************************/
68
69#define M_TYPE_DOUBLE 0x00100000L
70#define M_TYPE_LONG 0x00040000L
71#define M_MULTI_MARKER_MASK 0x000003FFL
72#define M_EDGE_FIRST 0x20000000L//0x00100000L
73#define M_EDGE_SECOND 0x40000000L//0x00200000L
74#define M_WEIGHT_FACTOR 0x01000000L
75#define M_MIN 0x02000000L
76#define M_MAX 0x04000000L
77#define M_MEAN 0x08000000L
78#define M_STANDARD_DEVIATION 0x10000000L
79#define M_MEAS_FUTURE_USE_1 0x20000000L
80#define M_MEAS_FUTURE_USE_2 0x40000000L
81#define M_MEAS_FUTURE_USE_3 0x80000000L
82
83/**************************************************************************/
84/* MmeasInquire(), MmeasSetMarker(), MmeasGetResult(), MmeasFindMarker(), */
85/* MmeasCalculate() parameters : */
86/**************************************************************************/
87
88#define M_POSITION_VARIATION 0x00008000L
89#define M_ANGLE 0x00000800L
90#define M_WIDTH 0x00010000L
91#define M_WIDTH_VARIATION 0x00020000L
92#define M_POLARITY 0x00004000L
93#define M_CONTRAST 0x00001000L
94#define M_LENGTH 0x00002000L
95#define M_LINE_EQUATION 0x00800000L
96#define M_LINE_EQUATION_SLOPE 0x00801000L
97#define M_LINE_EQUATION_INTERCEPT 0x00802000L
98#define M_EDGE_INSIDE 0x00000080L
99#define M_POSITION 0x00000402L
100#define M_SPACING 0x00000200L
101#define M_NUMBER 1009L
102#define M_NUMBER_MIN 1010L
103#define M_FIT_ERROR 0x00001700L // already defined in MilMod.h
104
105#define M_SPACING_VARIATION 0x00000100L
106#define M_SCORE 0x00001400L
107#define M_ORIENTATION 0x00002400L
108#define M_POSITION_X 0x00003400L
109#define M_POSITION_Y 0x00004400L
110#define M_CONTRAST_VARIATION 0x00005400L
111#define M_EDGE_STRENGTH 0x00006400L
112#define M_EDGE_STRENGTH_VARIATION 0x00007400L
113#define M_EDGE_INSIDE_VARIATION 0x00008400L
114#define M_BOX_ORIGIN 0x00009400L
115#define M_BOX_SIZE 0x0000A400L
116#define M_BOX_CENTER 0x0000B400L
117#define M_BOX_FIRST_CENTER 0x0000C400L
118#define M_BOX_SECOND_CENTER 0x0000D400L
119#define M_BOX_ANGLE_MODE 0x0000E400L
120#define M_BOX_ANGLE 0x0000F400L
121#define M_BOX_ANGLE_DELTA_NEG 0x00010400L
122#define M_BOX_ANGLE_DELTA_POS 0x00011400L
123#define M_BOX_ANGLE_TOLERANCE 0x00012400L
124#define M_BOX_ANGLE_ACCURACY 0x00013400L
125#define M_BOX_ANGLE_INTERPOLATION_MODE 0x00014400L
126#define M_EDGE_THRESHOLD 0x00015400L
127#define M_MARKER_REFERENCE 0x00016400L
128#define M_BOX_ANGLE_SIZE 0x00017400L
129#define M_MARKER_TYPE 0x00018400L
130#define M_CONTROL_FLAG 0x00019400L
131#define M_POSITION_MIN 0x0001A400L
132#define M_POSITION_MAX 0x0001B400L
133#define M_BOX_EDGE_VALUES 0x0001C400L
134#define M_ANY_ANGLE 0x0001D400L
135#define M_VALID_FLAG 0x0001E400L
136#define M_BOX_CORNER_TOP_LEFT 0x0001F400L
137#define M_BOX_CORNER_TOP_RIGHT 0x00020400L
138#define M_BOX_CORNER_BOTTOM_LEFT 0x00021400L
139#define M_BOX_CORNER_BOTTOM_RIGHT 0x00022400L
140#define M_BOX_EDGE_VALUES_NUMBER 0x00023400L
141#define M_POSITION_INSIDE_STRIPE 0x00024400L
142#define M_BOX_ANGLE_REFERENCE 0x00025400L
143#define M_TOTAL_SCORE 0x00029400L
144#define M_BOX_RADIUS 0x0002A400L
145#define M_BOX_START_ANGLE 0x0002B400L
146#define M_BOX_END_ANGLE 0x0002C400L
147#define M_ALL 0x40000000L // Already defined in Mil.h
148#define M_ALL_OLD 0L
149
150#define M_MAJOR_AXIS_MIN 214L // Already defined in MilMod.h
151#define M_MAJOR_AXIS 215L // Already defined in MilMod.h
152#define M_MAJOR_AXIS_MAX 216L // Already defined in MilMod.h
153#define M_RADIUS M_MAJOR_AXIS // Already defined in MilMod.h
154#define M_RADIUS_MIN M_MAJOR_AXIS_MIN // Already defined in MilMod.h
155#define M_RADIUS_MAX M_MAJOR_AXIS_MAX // Already defined in MilMod.h
156#define M_RADIUS_VARIATION 217L
157
158#define M_CONTROL_FLAG 0x00019400L
159#define M_ZERO_OFFSET_X 1L
160#define M_ZERO_OFFSET_Y 2L
161#define M_PIXEL_ASPECT_RATIO 5L
162#define M_PIXEL_ASPECT_RATIO_INPUT 6L
163#define M_PIXEL_ASPECT_RATIO_OUTPUT 7L
164
165#define M_RESULT_TYPE 1L
166#define M_DISTANCE 0x00080000L
167#define M_DISTANCE_X 0x00081000L
168#define M_DISTANCE_Y 0x00082000L
169#define M_ANGLE 0x00000800L
170#define M_LINE_EQUATION 0x00800000L
171#define M_LINE_EQUATION_SLOPE 0x00801000L
172#define M_LINE_EQUATION_INTERCEPT 0x00802000L
173/* Internal */
174#define M_REF_POSITION_MARKER_FIRST 0x00803000L
175#define M_REF_POSITION_MARKER_SECOND 0x00804000L
176#define M_ASPECT_RATIO_MARKER_FIRST 0x00805000L
177#define M_ASPECT_RATIO_MARKER_SECOND 0x00806000L
178
179
180/**************************************************************************/
181/* MmeasInquire(), MmeasSetMarker(), MmeasGetResult(), MmeasFindMarker(), */
182/* MmeasCalculate() values : */
183/**************************************************************************/
184
185#define M_VERTICAL 1L
186#define M_HORIZONTAL 2L
187#define M_ANY 0x11000000L
188#define M_POSITIVE 2L
189#define M_NEGATIVE -2L /*Must be the additive inverse of M_POSITIVE*/
190#define M_OPPOSITE 3L
191#define M_SAME -1L /* For spacing */
192#ifndef M_MIL_75_COMPATIBLE
193#define M_NORMAL 8L
194#else
195#define M_NORMAL 1L
196#endif //M_MIL_75_COMPATIBLE
197#define M_CORRECTED 2L
198#define M_DISABLE -9999L
199#define M_ENABLE -9997L
200#define M_NEAREST_NEIGHBOR 0x00000040L
201#define M_BILINEAR 0x00000008L
202#define M_BICUBIC 0x00000010L
203#define M_YES 1L
204#define M_NO 0L
205#define M_TRUE 1L
206#define M_FALSE 0L
207#define M_INVALID -1L
208#define M_SMOOTHNESS 108L // already define in milmod.h
209
210
211
212/**************************************************************************/
213/* MmeasDraw() */
214/**************************************************************************/
215
216#define M_DRAW_BOX_CENTER 1L
217#define M_DRAW_LINE 2L
218#define M_DRAW_EDGES 4L
219#define M_DRAW_WIDTH 8L
220#define M_DRAW_POSITION_VARIATION 16L
221#define M_DRAW_BOX 32L // also used by Mblobdraw and MpatDraw and Mmoddraw
222#define M_DRAW_POSITION 64L // also used by Mblobdraw and MpatDraw and Mmoddraw
223#define M_DRAW_EDGES_PROFILE 128L
224#define M_DRAW_SPACING 256L
225#define M_DRAW_WIDTH_VARIATION 512L
226#define M_DRAW_IN_BOX 0x100000L
227
228#define M_RESULT 0x00001000L // Also used by MmodDraw
229#define M_MARKER 504L
230
231#define M_ALL 0x40000000L // Also used by MmodDraw
232
233
234/**************************************************************************/
235/* MmeasRestoreMarker(), MmeasSaveMarker */
236/**************************************************************************/
237#define M_INTERACTIVE M_NULL // Already defined in mil.h, milcal.h, milcode.h, miledge.h, milocr.h, milpat.h, milmod.h
238
239
240/**************************************************************************/
241/* Utility defines */
242/**************************************************************************/
243
244#define M_INFINITE_SLOPE (1.0E+300)
245
246
247// !!! MAP FOR OLD DEFINES
248#if OldDefinesSupport
249#define M_BOX_EDGES_STRENGTH M_BOX_EDGE_VALUES
250#define M_BOX_EDGES_STRENGTH_NUMBER M_BOX_EDGE_VALUES_NUMBER
251#endif
252// !!! MAP FOR OLD DEFINES
253
254/**************************************************************************/
255/* Function prototypes */
256/**************************************************************************/
257
258#ifndef __midl // MIDL compiler used by ActiveMIL
259
260MFTYPE32 MIL_ID MFTYPE MmeasAllocMarker (MIL_ID SystemId,
261 long MarkerType,
262 long ControlFlag,
263 MIL_ID *MarkerIdPtr);
264
265MFTYPE32 MIL_ID MFTYPE MmeasAllocResult (MIL_ID SystemId,
266 long ResultBufferType,
267 MIL_ID MPTYPE *ResultIdPtr);
268
269MFTYPE32 MIL_ID MFTYPE MmeasAllocContext (MIL_ID SystemId,
270 long ControlFlag,
271 MIL_ID *ContextId);
272
273MFTYPE32 void MFTYPE MmeasFree (MIL_ID MarkerOrResultIdOrContextId);
274
275MFTYPE32 void MFTYPE MmeasSaveMarker (MIL_TEXT_PTR FileName,
276 MIL_ID MarkerId,
277 long ControlFlag);
278
279MFTYPE32 MIL_ID MFTYPE MmeasRestoreMarker(MIL_TEXT_PTR FileName,
280 MIL_ID SystemId,
281 long ControlFlag,
282 MIL_ID *MarkerIdPtr);
283
284MFTYPE32 void MFTYPE MmeasSetMarker (MIL_ID MarkerId,
285 long Parameter,
286 double FirstValue,
287 double SecondValue);
288
289MFTYPE32 void MFTYPE MmeasFindMarker (MIL_ID ContextId,
290 MIL_ID ImageId,
291 MIL_ID MarkerId,
292 long MeasurementList);
293
294MFTYPE32 void MFTYPE MmeasCalculate (MIL_ID ContextID,
295 MIL_ID Marker1Id,
296 MIL_ID Marker2Id,
297 MIL_ID ResultId,
298 long MeasurementList);
299
300MFTYPE32 void MFTYPE MmeasGetResult (MIL_ID MarkerOrResultId,
301 long ResultType,
302 void *FirstResultPtr,
303 void *SecondResultPtr);
304
305MFTYPE32 void MFTYPE MmeasGetResultSingle(MIL_ID MarkerOrResultId,
306 long ResultType,
307 void *FirstResultPtr,
308 void *SecondResultPtr,
309 long Index);
310
311MFTYPE32 long MFTYPE MmeasInquire (MIL_ID MarkerIdOrResultIdOrContextId,
312 long ParamToInquire,
313 void *FirstValuePtr,
314 void *SecondValuePtr);
315
316MFTYPE32 void MFTYPE MmeasControl (MIL_ID ContextId,
317 long ControlType,
318 double Value);
319
320MFTYPE32 void MFTYPE MmeasDraw (MIL_ID GraphContId,
321 MIL_ID MarkerOrResultId,
322 MIL_ID DestImageId,
323 long Operation,
324 long Index,
325 long ControlFlag);
326
327
328#endif /* #ifdef __midl */
329
330
331
332/* C++ directive if needed */
333#ifdef __cplusplus
334}
335#endif
336
337#endif // !M_MIL_LITE
338
339#endif /* __MILMEAS_H__ */
long MIL_ID
Definition: AcqOdyssey.h:45
char * MIL_TEXT_PTR
Definition: Milos.h:90
MFTYPE32 void MFTYPE MmeasControl(MIL_ID ContextId, long ControlType, double Value)
MFTYPE32 void MFTYPE MmeasFindMarker(MIL_ID ContextId, MIL_ID ImageId, MIL_ID MarkerId, long MeasurementList)
MFTYPE32 MIL_ID MFTYPE MmeasAllocResult(MIL_ID SystemId, long ResultBufferType, MIL_ID MPTYPE *ResultIdPtr)
MFTYPE32 void MFTYPE MmeasCalculate(MIL_ID ContextID, MIL_ID Marker1Id, MIL_ID Marker2Id, MIL_ID ResultId, long MeasurementList)
MFTYPE32 void MFTYPE MmeasGetResultSingle(MIL_ID MarkerOrResultId, long ResultType, void *FirstResultPtr, void *SecondResultPtr, long Index)
MFTYPE32 long MFTYPE MmeasInquire(MIL_ID MarkerIdOrResultIdOrContextId, long ParamToInquire, void *FirstValuePtr, void *SecondValuePtr)
MFTYPE32 void MFTYPE MmeasDraw(MIL_ID GraphContId, MIL_ID MarkerOrResultId, MIL_ID DestImageId, long Operation, long Index, long ControlFlag)
MFTYPE32 MIL_ID MFTYPE MmeasAllocContext(MIL_ID SystemId, long ControlFlag, MIL_ID *ContextId)
MFTYPE32 MIL_ID MFTYPE MmeasAllocMarker(MIL_ID SystemId, long MarkerType, long ControlFlag, MIL_ID *MarkerIdPtr)
MFTYPE32 void MFTYPE MmeasFree(MIL_ID MarkerOrResultIdOrContextId)
MFTYPE32 void MFTYPE MmeasGetResult(MIL_ID MarkerOrResultId, long ResultType, void *FirstResultPtr, void *SecondResultPtr)
MFTYPE32 void MFTYPE MmeasSaveMarker(MIL_TEXT_PTR FileName, MIL_ID MarkerId, long ControlFlag)
MFTYPE32 void MFTYPE MmeasSetMarker(MIL_ID MarkerId, long Parameter, double FirstValue, double SecondValue)
MFTYPE32 MIL_ID MFTYPE MmeasRestoreMarker(MIL_TEXT_PTR FileName, MIL_ID SystemId, long ControlFlag, MIL_ID *MarkerIdPtr)