Gocator Development Kit
 All Classes Files Functions Variables Typedefs Friends Modules Pages
GdkDef.h
Go to the documentation of this file.
1 /**
2  * @file GdkDef.h
3  * @brief Essential Gdk declarations.
4  *
5  * @internal
6  * Copyright (C) 2013-2022 by LMI Technologies Inc. All rights reserved.
7  */
8 #ifndef GDK_DEF_H
9 #define GDK_DEF_H
10 
11 #include <kApi/kApiDef.h>
12 #include <kFireSync/kFsDef.h>
13 
14 #if defined(GDK_EMIT)
15 # define GdkFx(TYPE) kExportFx(TYPE)
16 # define GdkDx(TYPE) kExportDx(TYPE)
17 # define GdkCppFx(TYPE) kExportDx(TYPE)
18 # define GdkClass kExportClass
19 #else
20 # define GdkFx(TYPE) kImportFx(TYPE)
21 # define GdkDx(TYPE) kImportDx(TYPE)
22 # define GdkCppFx(TYPE) kImportDx(TYPE)
23 # define GdkClass kImportClass
24 #endif
25 
26 kDeclareValueEx(Gdk, GdkStreamId, kValue)
27 
28 #define GDK_MAX_SENSOR_COUNT 32 // Should correspond to GS_MAX_SENSOR_COUNT
29 
30 typedef struct GdkStreamId
31 {
32  k32s step;
33  k32s id;
34  k32s source;
35 } GdkStreamId;
36 
37 typedef struct GdkRegion2d64f
38 {
39  k64f x;
40  k64f y;
41  k64f width;
42  k64f length;
43 } GdkRegion2d64f;
44 
45 typedef struct GdkRegion3d64f
46 {
47  k64f x;
48  k64f y;
49  k64f z;
50  k64f width;
51  k64f length;
52  k64f height;
53  k64f zAngle;
54 } GdkRegion3d64f;
55 
56 typedef struct GdkRegionXZ64f
57 {
58  k64f x;
59  k64f z;
60  k64f width;
61  k64f height;
62 } GdkRegionXZ64f;
63 
64 typedef struct GdkPointXZ16s
65 {
66  k16s x;
67  k16s z;
68 } GdkPointXZ16s;
69 
70 /**
71 * @struct GdkPointSetRegionMode
72 * @extends kValue
73 * @ingroup Gdk
74 * @brief Connectedness of points in point set region.
75 */
77 
78 /** @relates GdkPointSetRegionMode @{ */
79 #define GDK_POINT_SET_MODE_POINTS (1) ///< Individual points
80 #define GDK_POINT_SET_MODE_OPEN (2) ///< Open, connected in order
81 #define GDK_POINT_SET_MODE_CLOSED (3) ///< Closed loop
82 /** @} */
83 
84 /**
85 * @struct GdkPointSetRegionColor
86 * @extends kValue
87 * @ingroup Gdk
88 * @brief Color, of points or connecting lines.
89 */
91 
92 /** @relates GdkPointSetRegionColor @{ */
93 #define GDK_POINT_SET_COLOR_BLACK (0x000000) ///< Black
94 #define GDK_POINT_SET_COLOR_BLUE (0x0000ff) ///< Blue
95 #define GDK_POINT_SET_COLOR_CYAN (0x00ffff) ///< Cyan
96 #define GDK_POINT_SET_COLOR_DARK_RED (0x720000) ///< Dark red
97 #define GDK_POINT_SET_COLOR_GREEN (0x00ff00) ///< Green
98 #define GDK_POINT_SET_COLOR_LIGHT_BLUE (0x4169ff) ///< Light blue
99 #define GDK_POINT_SET_COLOR_MAGENTA (0xff00ff) ///< Magenta
100 #define GDK_POINT_SET_COLOR_ORANGE (0xffbb00) ///< Orange
101 #define GDK_POINT_SET_COLOR_PINK (0xffbdc1) ///< Pink
102 #define GDK_POINT_SET_COLOR_RED (0xff0000) ///< Red
103 #define GDK_POINT_SET_COLOR_WHITE (0xffffff) ///< White
104 #define GDK_POINT_SET_COLOR_YELLOW (0xffff00) ///< Yellow
105 #define GDK_POINT_SET_COLOR_PURPLE (0x7f007f) ///< Purple
106 #define GDK_POINT_SET_COLOR_GRAY (0x3f3f3f) ///< Gray
107 #define GDK_POINT_SET_COLOR_LIGHT_GRAY (0xd3d3d3) ///< Light gray
108 #define GDK_POINT_SET_COLOR_YELLOW50_BLACK50 (0x808000) ///< 50/50 yellow/black
109 #define GDK_POINT_SET_COLOR_LIGHT_GREEN (0x67D0C5) ///< Light green
110 #define GDK_POINT_SET_COLOR_DARK_ORANGE (0xD26500) ///< Dark orange
111 #define GDK_POINT_SET_COLOR_VIOLET (0xCCB5F1) ///< Violet
112 #define GDK_POINT_SET_COLOR_BRIGHT_PURPLE (0x9064FF) ///< Bright purple
113 #define GDK_POINT_SET_COLOR_BRIGHT_RED (0xA10000) ///< Bright red
114 #define GDK_POINT_SET_COLOR_MUSTARD (0x868C02) ///< Mustard
115 #define GDK_POINT_SET_COLOR_DARK_MUSTARD (0x484900) ///< Dark mustard
116 /** @} */
117 
118 /**
119 * @struct GdkTransform3d
120 * @extends kValue
121 * @ingroup Gdk
122 * @brief 3D transformation matrix
123 
124 [ xx xy xz xt ]
125 [ yx yy yz yt ]
126 [ zx zy zz zt ]
127 [ 0 0 0 1 ]
128 */
129 
130 /** @relates GdkTransform3d @{ */
131 typedef struct GdkTransform3d
132 {
133  k64f xx;
134  k64f xy;
135  k64f xz;
136  k64f xt;
137 
138  k64f yx;
139  k64f yy;
140  k64f yz;
141  k64f yt;
142 
143  k64f zx;
144  k64f zy;
145  k64f zz;
146  k64f zt;
147 
149 /** @} */
150 
151 
152 GdkFx(kStatus) GdkRegion3d64f_FromRect(GdkRegion3d64f* region, const kRect3d64f* rect);
153 GdkFx(kStatus) GdkRegion3d64f_ToRect(const GdkRegion3d64f* region, kRect3d64f* rect);
154 
155 /**
156 * @struct GdkOrientation
157 * @extends kValue
158 * @ingroup Gdk
159 * @brief Represents the sensor system orientation.
160 */
161 typedef k32s GdkOrientation;
162 
163 /** @relates GdkOrientation @{ */
164 #define GDK_ORIENTATION_WIDE (0) ///< Wide layout.
165 #define GDK_ORIENTATION_OPPOSITE (1) ///< Opposite layout.
166 #define GDK_ORIENTATION_REVERSE (2) ///< Reverse layout.
167 /** @} */
168 
169 /**
170 * @struct GdkDataSource
171 * @extends kValue
172 * @ingroup Gdk
173 * @brief Represents a data source selection.
174 */
175 typedef k32s GdkDataSource;
176 
177 /** @relates GdkDataSource @{ */
178 #define GDK_DATA_SOURCE_NONE (-1) ///< None or invalid.
179 #define GDK_DATA_SOURCE_TOP (0) ///< Top.
180 #define GDK_DATA_SOURCE_BOTTOM (1) ///< Bottom.
181 #define GDK_DATA_SOURCE_TOP_LEFT (2) ///< Top left.
182 #define GDK_DATA_SOURCE_TOP_RIGHT (3) ///< Top right.
183 #define GDK_DATA_SOURCE_TOP_BOTTOM (4) ///< Top and bottom (both data streams).
184 #define GDK_DATA_SOURCE_LEFT_RIGHT (5) ///< Left and right (both data streams).
185 #define GDK_DATA_SOURCE_COUNT (6) ///< Reserved for internal use.
186 #define GDK_DATA_SOURCE_TOOLDATAOUTPUT (GDK_DATA_SOURCE_TOP) ///< Treat Tool Data Output source as Top.
187 #define GDK_DATA_SOURCE_DEVICE_BASE (100) ///< Base value to retrieve a buddied device's data stream. Source id is base + device index (where index is from 0..GDK_MAX_SENSOR_COUNT-1, and index 0 is the main sensor).
188 #define GDK_DATA_SOURCE_DEVICE_LAST (GDK_DATA_SOURCE_DEVICE_BASE + GDK_MAX_SENSOR_COUNT - 1) ///< Last buddy device in a buddy configuration.
189 #define GDK_DATA_SOURCE_DEVICE_ALL (GDK_DATA_SOURCE_DEVICE_LAST + 1) ///< Allow all sensors in a buddy configuration as a data stream source.
190 #define GDK_DATA_SOURCE_IS_DEVICE_SOURCE(sourceId) (((sourceId) >= GDK_DATA_SOURCE_DEVICE_BASE) && ((sourceId) <= GDK_DATA_SOURCE_DEVICE_LAST)) ///< Macro to check if a source is a device in a buddy configuration.
191 
192 /** @} */
193 
194 /**
195  * @ingroup Gdk
196  * @defgroup RESERVED Reserved
197  * @brief Reserved Gdk declarations.
198  * @{
199  */
200 #define GDK_DATA_PRIMARY_INPUT_NAME "PrimaryData" ///< Index 0 is reserved for the Primary Data Input name.
201 #define GDK_DATA_PRIMARY_INPUT_INDEX 0 ///< Primary input message index
202 #define GDK_DATA_SECONDARY_INPUT_START_INDEX (GDK_DATA_PRIMARY_INPUT_INDEX + 1) ///< Secondary input (eg. parameters, features) index starting value.
203 /** @} */
204 
205 /**
206 * @struct GdkDataType
207 * @extends kValue
208 * @ingroup Gdk
209 * @brief Represents data type. No longer used as a bitmask.
210 * Note that generic data types will have their msb set to 1
211 * (ie. start from 0x80000000).
212 * The first 17 generic data types are defined below for convenience.
213 */
214 typedef k32s GdkDataType;
215 
216 /** @relates GdkDataType @{ */
217 #define GDK_DATA_TYPE_NONE (0x1) ///< None.
218 #define GDK_DATA_TYPE_RANGE (0x2) ///< Range data.
219 #define GDK_DATA_TYPE_UNIFORM_PROFILE (0x3) ///< Uniformly-spaced (resampled) profile data.
220 #define GDK_DATA_TYPE_PROFILE_POINT_CLOUD (0x4) ///< Profile point cloud.
221 #define GDK_DATA_TYPE_UNIFORM_SURFACE (0x5) ///< Uniformly-spaced height map. (Points = k16s)
222 #define GDK_DATA_TYPE_SURFACE_POINT_CLOUD (0x6) ///< Surface point cloud. (Points = kPoint3d16s)
223 #define GDK_DATA_TYPE_UNMERGED_PROFILE_POINT_CLOUD (0x7) ///< Unmerged profile point cloud data. Reserved for future use.
224 #define GDK_DATA_TYPE_VIDEO (0x8) ///< Video data.
225 #define GDK_DATA_TYPE_TRACHEID (0x9) ///< Tracheid data. Reserved for internal use.
226 #define GDK_DATA_TYPE_MEASUREMENT (0xA) ///< Measurement data
227 #define GDK_DATA_TYPE_MESH (0xB) ///< Mesh data
228 
229 #define GDK_DATA_TYPE_FEATURES (0x200) ///< Geometric features only. No scan data.
230 #define GDK_DATA_TYPE_FEATURE_POINT (0x201) ///< Point feature data
231 #define GDK_DATA_TYPE_FEATURE_LINE (0x202) ///< Line feature data
232 #define GDK_DATA_TYPE_FEATURE_CIRCLE (0x203) ///< Circle feature data
233 #define GDK_DATA_TYPE_FEATURE_PLANE (0x204) ///< Plane feature data
234 
235 #define GDK_DATA_TYPE_GENERIC_BASE (0x80000000) ///< Generic data base
236 #define GDK_DATA_TYPE_GENERIC_1 (GDK_DATA_TYPE_GENERIC_BASE+1) ///< Generic data 1
237 #define GDK_DATA_TYPE_GENERIC_2 (GDK_DATA_TYPE_GENERIC_BASE+2) ///< Generic data 2
238 #define GDK_DATA_TYPE_GENERIC_3 (GDK_DATA_TYPE_GENERIC_BASE+3) ///< Generic data 3
239 #define GDK_DATA_TYPE_GENERIC_4 (GDK_DATA_TYPE_GENERIC_BASE+4) ///< Generic data 4
240 #define GDK_DATA_TYPE_GENERIC_5 (GDK_DATA_TYPE_GENERIC_BASE+5) ///< Generic data 5
241 #define GDK_DATA_TYPE_GENERIC_6 (GDK_DATA_TYPE_GENERIC_BASE+6) ///< Generic data 6
242 #define GDK_DATA_TYPE_GENERIC_7 (GDK_DATA_TYPE_GENERIC_BASE+7) ///< Generic data 7
243 #define GDK_DATA_TYPE_GENERIC_8 (GDK_DATA_TYPE_GENERIC_BASE+8) ///< Generic data 8
244 #define GDK_DATA_TYPE_GENERIC_9 (GDK_DATA_TYPE_GENERIC_BASE+9) ///< Generic data 9
245 #define GDK_DATA_TYPE_GENERIC_10 (GDK_DATA_TYPE_GENERIC_BASE+10) ///< Generic data 10
246 #define GDK_DATA_TYPE_GENERIC_11 (GDK_DATA_TYPE_GENERIC_BASE+11) ///< Generic data 11
247 #define GDK_DATA_TYPE_GENERIC_12 (GDK_DATA_TYPE_GENERIC_BASE+12) ///< Generic data 12
248 #define GDK_DATA_TYPE_GENERIC_13 (GDK_DATA_TYPE_GENERIC_BASE+13) ///< Generic data 13
249 #define GDK_DATA_TYPE_GENERIC_14 (GDK_DATA_TYPE_GENERIC_BASE+14) ///< Generic data 14
250 #define GDK_DATA_TYPE_GENERIC_15 (GDK_DATA_TYPE_GENERIC_BASE+15) ///< Generic data 15
251 #define GDK_DATA_TYPE_GENERIC_16 (GDK_DATA_TYPE_GENERIC_BASE+16) ///< Generic data 16
252 #define GDK_DATA_TYPE_GENERIC_END (0xFFFFFFFF) ///< Generic data last available
253 
254 #define IS_GDK_DATA_TYPE_GENERIC(dataType) \
255  ((GdkDataType) dataType >= (GdkDataType) GDK_DATA_TYPE_GENERIC_BASE && (GdkDataType) dataType <= (GdkDataType) GDK_DATA_TYPE_GENERIC_END)
256 
257 #define GDK_DATA_TYPE_FEATURES_ONLY (GDK_DATA_TYPE_FEATURES) ///< Geometric features only. (DEPRECATED)
258 #define GDK_DATA_TYPE_RAW_PROFILE (GDK_DATA_TYPE_PROFILE_POINT_CLOUD) ///< Unresampled profile data. (DEPRECATED)
259 #define GDK_DATA_TYPE_RAW_SURFACE (GDK_DATA_TYPE_SURFACE_POINT_CLOUD) ///< Unresampled point cloud. (Points = kPoint3d16s) (DEPRECATED)
260 #define GDK_DATA_TYPE_UNMERGED_RAW_PROFILE (GDK_DATA_TYPE_UNMERGED_PROFILE_POINT_CLOUD) ///< Unmerged raw profile data. (DEPRECATED)
261 /** @} */
262 
263 /**
264 * @struct GdkGraphicAnchorRegionType
265 * @extends kValue
266 * @ingroup Gdk
267 * @brief Represents type of anchor region.
268 */
270 
271 /** @relates GdkGraphicAnchorRegionType @{ */
272 #define GDK_GRAPHIC_ANCHOR_REGION_2D (0x0)
273 #define GDK_GRAPHIC_ANCHOR_REGION_3D (0x1)
274 #define GDK_GRAPHIC_ANCHOR_REGION_2D_XY (0x2)
275 /** @} */
276 
277 /**
278 * @struct GdkGraphicPositionType
279 * @extends kValue
280 * @ingroup Gdk
281 * @brief Represents type of GDK Graphic Position.
282 */
284 
285 /** @relates GdkGraphicPositionType @{ */
286 #define GDK_GRAPHIC_POSITION_TYPE_NONE (0x0) ///< No Graphic position.
287 #define GDK_GRAPHIC_POSITION_TYPE_X (0x1) ///< Graphic position X.
288 #define GDK_GRAPHIC_POSITION_TYPE_Y (0x2) ///< Graphic position Y.
289 #define GDK_GRAPHIC_POSITION_TYPE_Z (0x3) ///< Graphic position Z.
290 /** @} */
291 
292 /**
293 * @struct GdkAnchorParam
294 * @extends kValue
295 * @ingroup Gdk
296 * @brief Represents anchor parameter source selections.
297 */
298 typedef k32s GdkAnchorParam;
299 
300 /** @relates GdkAnchorParam @{ */
301 #define GDK_ANCHOR_PARAM_X (0) ///< X Axis.
302 #define GDK_ANCHOR_PARAM_Y (1) ///< Y Axis.
303 #define GDK_ANCHOR_PARAM_Z (2) ///< Z Axis.
304 #define GDK_ANCHOR_PARAM_Z_ANGLE (3) ///< Z Rotation Angle.
305 #define GDK_ANCHOR_PARAM_COUNT (4) ///< Reserved for internal use.
306 /** @} */
307 
308 GdkFx(const kChar*) GdkAnchorParam_Format(GdkAnchorParam axis);
309 
310 /**
311  * @struct GdkAxis
312  * @extends kValue
313  * @ingroup Gdk
314  * @brief Represents axis X, Y, Z.
315  */
316 typedef k32s GdkAxis;
317 /** @relates GdkAxis @{ */
318 #define GDK_AXIS_X (0) ///< X Axis.
319 #define GDK_AXIS_Y (1) ///< Y Axis.
320 #define GDK_AXIS_Z (2) ///< Z Axis.
321 /** @} */
322 
323 /**
324 * @struct GdkRefFrame
325 * @extends kValue
326 * @ingroup Gdk
327 * @brief Represents data source selections.
328 */
329 typedef k32s GdkRefFrame;
330 
331 /** @relates GdkRefFrame @{ */
332 #define GDK_REF_FRAME_SENSOR (0) ///< Sensor frame of reference.
333 #define GDK_REF_FRAME_SCAN (1) ///< Scan frame of reference (X in sensor frame, Y in part frame).
334 #define GDK_REF_FRAME_PART (2) ///< Part frame of reference.
335 /** @} */
336 
337 /**
338 * @struct GdkMeasurementValueType
339 * @extends kValue
340 * @ingroup Gdk
341 * @brief Represents data source selections.
342 */
344 
345 /** @relates GdkMeasurementValueType @{ */
346 #define GDK_MEASUREMENT_VALUE_TYPE_VALUE (0) ///< Generic value.
347 #define GDK_MEASUREMENT_VALUE_TYPE_X (1) ///< X value (mm).
348 #define GDK_MEASUREMENT_VALUE_TYPE_Y (2) ///< Y value (mm).
349 #define GDK_MEASUREMENT_VALUE_TYPE_Z (3) ///< Z value (mm).
350 #define GDK_MEASUREMENT_VALUE_TYPE_X_ANGLE (4) ///< X angle (degrees).
351 #define GDK_MEASUREMENT_VALUE_TYPE_Y_ANGLE (5) ///< Y angle (degrees).
352 #define GDK_MEASUREMENT_VALUE_TYPE_Z_ANGLE (6) ///< Z angle (degrees).
353 /** @} */
354 
355 /**
356 * @struct GdkToolOutputType
357 * @extends k32s
358 * @ingroup Gdk
359 * @brief Represents tool output type.
360 */
361 typedef k32s GdkToolOutputType;
362 
363 /** @relates GdkToolOutputType @{ */
364 #define GDK_TOOL_OUTPUT_TYPE_NULL (0) ///< Null output.
365 #define GDK_TOOL_OUTPUT_TYPE_MEASUREMENT (1) ///< Measurement output.
366 #define GDK_TOOL_OUTPUT_TYPE_FEATURE (2) ///< Feature output.
367 #define GDK_TOOL_OUTPUT_TYPE_DIAGNOSTIC (3) ///< Diagnostic output.
368 #define GDK_TOOL_OUTPUT_TYPE_TOOLDATA_OUTPUT (4) ///< Tool Data output.
369 /** @} */
370 
371 
372 /**
373 * @struct GdkFeatureDataType
374 * @extends k32s
375 * @ingroup Gdk
376 * @brief Represents geometric feature output type.
377 */
378 typedef k32s GdkFeatureDataType;
379 /** @relates GdkFeatureDataType @{ */
380 #define GDK_FEATURE_TYPE_NULL (-1) ///< Null feature.
381 #define GDK_FEATURE_TYPE_POINT (0) ///< Point feature.
382 #define GDK_FEATURE_TYPE_LINE (1) ///< Line feature.
383 #define GDK_FEATURE_TYPE_CIRCLE (2) ///< Circle feature.
384 #define GDK_FEATURE_TYPE_PLANE (3) ///< Plane feature.
385 /** @} */
386 kDeclareEnumEx(Gdk, GdkFeatureDataType, kValue)
387 
388 typedef k32s GdkGeometricFeatureId;
389 
390 #define GDK_GEOMETRIC_FEATURE_ID_NONE (-1)
391 
392 GdkFx(const kChar*) GdkFeatureDataType_ToString(GdkFeatureDataType type);
393 GdkFx(GdkFeatureDataType) GdkFeatureDataType_ToType(const kChar* typeName);
394 
395 typedef k32s GdkToolFormat;
396 #define GDK_TOOL_FORMAT_STANDARD (0)
397 #define GDK_TOOL_FORMAT_USER (1)
398 #define GDK_TOOL_FORMAT_INTERNAL (2)
399 
400 typedef struct GdkMeasurementData
401 {
402  kPoint3d64f anchorPosition;
403 } GdkMeasurementData;
404 
405 GdkFx(kStatus) GdkLogf(const kChar* message, ...);
406 
407 // Forward declarations
408 
409 typedef kObject GdkTool;
410 
411 #endif
Definition: GdkCfgInterfaces.h:14
Represents data source selections.
#define kDeclareEnumEx(PREFIX, SYMBOL, BASE)
Represents a data source selection.
Represents type of anchor region.
Represents geometric feature output type.
Represents tool output type.
Connectedness of points in point set region.
Represents data source selections.
Represents type of GDK Graphic Position.
#define kDeclareValueEx(PREFIX, SYMBOL, BASE)
Represents anchor parameter source selections.
Represents axis X, Y, Z.
Represents data type. No longer used as a bitmask. Note that generic data types will have their msb s...
Represents the sensor system orientation.
Color, of points or connecting lines.
Base class for a tool implementation.
3D transformation matrix
Definition: GdkDef.h:131