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
23 extern "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 
260 MFTYPE32 MIL_ID MFTYPE MmeasAllocMarker (MIL_ID SystemId,
261  long MarkerType,
262  long ControlFlag,
263  MIL_ID *MarkerIdPtr);
264 
265 MFTYPE32 MIL_ID MFTYPE MmeasAllocResult (MIL_ID SystemId,
266  long ResultBufferType,
267  MIL_ID MPTYPE *ResultIdPtr);
268 
269 MFTYPE32 MIL_ID MFTYPE MmeasAllocContext (MIL_ID SystemId,
270  long ControlFlag,
271  MIL_ID *ContextId);
272 
273 MFTYPE32 void MFTYPE MmeasFree (MIL_ID MarkerOrResultIdOrContextId);
274 
275 MFTYPE32 void MFTYPE MmeasSaveMarker (MIL_TEXT_PTR FileName,
276  MIL_ID MarkerId,
277  long ControlFlag);
278 
279 MFTYPE32 MIL_ID MFTYPE MmeasRestoreMarker(MIL_TEXT_PTR FileName,
280  MIL_ID SystemId,
281  long ControlFlag,
282  MIL_ID *MarkerIdPtr);
283 
284 MFTYPE32 void MFTYPE MmeasSetMarker (MIL_ID MarkerId,
285  long Parameter,
286  double FirstValue,
287  double SecondValue);
288 
289 MFTYPE32 void MFTYPE MmeasFindMarker (MIL_ID ContextId,
290  MIL_ID ImageId,
291  MIL_ID MarkerId,
292  long MeasurementList);
293 
294 MFTYPE32 void MFTYPE MmeasCalculate (MIL_ID ContextID,
295  MIL_ID Marker1Id,
296  MIL_ID Marker2Id,
297  MIL_ID ResultId,
298  long MeasurementList);
299 
300 MFTYPE32 void MFTYPE MmeasGetResult (MIL_ID MarkerOrResultId,
301  long ResultType,
302  void *FirstResultPtr,
303  void *SecondResultPtr);
304 
305 MFTYPE32 void MFTYPE MmeasGetResultSingle(MIL_ID MarkerOrResultId,
306  long ResultType,
307  void *FirstResultPtr,
308  void *SecondResultPtr,
309  long Index);
310 
311 MFTYPE32 long MFTYPE MmeasInquire (MIL_ID MarkerIdOrResultIdOrContextId,
312  long ParamToInquire,
313  void *FirstValuePtr,
314  void *SecondValuePtr);
315 
316 MFTYPE32 void MFTYPE MmeasControl (MIL_ID ContextId,
317  long ControlType,
318  double Value);
319 
320 MFTYPE32 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)