Gocator API
 All Classes Files Functions Variables Typedefs Macros Modules Pages
GoSdkDef.h
Go to the documentation of this file.
1 /**
2  * @file GoSdkDef.h
3  * @brief Essential SDK declarations.
4  *
5  * @internal
6  * Copyright (C) 2017-2018 by LMI Technologies Inc.
7  * Licensed under the MIT License.
8  * Redistributed files must retain the above copyright notice.
9  */
10 #ifndef GO_SDK_DEF_H
11 #define GO_SDK_DEF_H
12 
13 #include <kApi/kApiDef.h>
14 #include <kApi/Io/kNetwork.h>
15 
16 kBeginHeader()
17 
18 #if defined (GO_EMIT)
19 # define GoFx(TYPE) kExportFx(TYPE) ///< GoSdk function declaration helper.
20 # define GoCx(TYPE) kExportCx(TYPE) ///< GoSdk dynamic function declaration helper.
21 # define GoDx(TYPE) kExportDx(TYPE) ///< GoSdk data declaration helper.
22 #elif defined (GO_STATIC)
23 # define GoFx(TYPE) kInFx(TYPE)
24 # define GoCx(TYPE) kInCx(TYPE)
25 # define GoDx(TYPE) kInDx(TYPE)
26 #else
27 # define GoFx(TYPE) kImportFx(TYPE)
28 # define GoCx(TYPE) kImportCx(TYPE)
29 # define GoDx(TYPE) kImportDx(TYPE)
30 #endif
31 
32 /**
33  * Returns the SDK version.
34  *
35  * @public @memberof GoSdk
36  * @version Introduced in firmware 4.0.10.27
37  * @return SDK version.
38  */
39 GoFx(kVersion) GoSdk_Version();
40 
41 /**
42  * Returns the protocol version associated with the SDK.
43  *
44  * @public @memberof GoSdk
45  * @version Introduced in firmware 4.0.10.27
46  * @return Protocol version.
47  */
48 GoFx(kVersion) GoSdk_ProtocolVersion();
49 
50 /**
51  * Frees the memory associated with a given kObject sourced class handle.
52  *
53  * @public @memberof GoSdk
54  * @version Introduced in firmware 4.0.10.27
55  * @param object A kObject.
56  * @return Operation status.
57  */
58 GoFx(kStatus) GoDestroy(kObject object);
59 
60 /**
61  * @struct GoUpgradeFxArgs
62  * @extends kValue
63  * @ingroup GoSdk
64  * @brief Represents arguments provided to an upgrade callback function.
65  */
66 typedef struct GoUpgradeFxArgs
67 {
68  k64f progress; ///< Upgrade progress (percentage).
70 
71 typedef kStatus (kCall* GoUpgradeFx) (kPointer receiver, kObject sender, GoUpgradeFxArgs* args);
72 
73 
74 /**
75  * @struct GoUser
76  * @extends kValue
77  * @ingroup GoSdk
78  * @brief Represents a user id.
79  *
80  * The following enumerators are defined:
81  * - #GO_USER_NONE
82  * - #GO_USER_ADMIN
83  * - #GO_USER_TECH
84  */
85 typedef k32s GoUser;
86 /** @name GoUser
87  *@{*/
88 #define GO_USER_NONE (0) ///< No user.
89 #define GO_USER_ADMIN (1) ///< Administrator user.
90 #define GO_USER_TECH (2) ///< Technician user.
91 /**@}*/
92 
93 typedef k32s Buddyable;
94 /** @name Buddyable
95 *@{*/
96 #define GO_NOT_BUDDYABLE (0) ///< Not Buddyable.
97 #define GO_BUDDYABLE (1) ///< Buddyable.
98 #define GO_ALREADY_BUDDIED (-100) ///< Already Buddied.
99 #define GO_INVALID_STATE (-99) ///< Error: Invalid State.
100 #define GO_VERSION_MISMATCH (-98) ///< Error: Version Mismatch.
101 #define GO_MODEL_MISMATCH (-97) ///< Error: Model Mismatch.
102 #define GO_UNREACHABLE_ADDRESS (-96) ///< Error: Unreachable Address.
103 
104 /**@}*/
105 
106 
107 /**
108  * @struct GoState
109  * @extends kValue
110  * @ingroup GoSdk
111  * @brief Represents the current state of a sensor object.
112  *
113  * The following enumerators are defined:
114  * - #GO_STATE_ONLINE
115  * - #GO_STATE_OFFLINE
116  * - #GO_STATE_RESETTING
117  * - #GO_STATE_INCOMPATIBLE
118  * - #GO_STATE_INCONSISTENT
119  * - #GO_STATE_UNRESPONSIVE
120  * - #GO_STATE_CANCELLED
121  * - #GO_STATE_INCOMPLETE
122  * - #GO_STATE_BUSY
123  * - #GO_STATE_READY
124  * - #GO_STATE_RUNNING
125  */
126 typedef k32s GoState;
127 /** @name GoState
128  *@{*/
129 #define GO_STATE_ONLINE (0) ///< Sensor disconnected, but detected via discovery.
130 #define GO_STATE_OFFLINE (1) ///< Sensor disconnected and no longer detected via discovery (refresh system to eliminate sensor).
131 #define GO_STATE_RESETTING (2) ///< Sensor disconnected and currently resetting (wait for completion).
132 #define GO_STATE_INCOMPATIBLE (4) ///< Sensor connected, but protocol incompatible with client (upgrade required).
133 #define GO_STATE_INCONSISTENT (5) ///< Sensor connected, but remote state was changed (refresh sensor).
134 #define GO_STATE_UNRESPONSIVE (6) ///< Sensor connected, but no longer detected via health or discovery (disconnect).
135 #define GO_STATE_CANCELLED (7) ///< Sensor connected, but communication aborted via GoSensor_Cancel function (disconnect or refresh sensor).
136 #define GO_STATE_INCOMPLETE (8) ///< Sensor connected, but a required buddy sensor is not present (wait or remove buddy association).
137 #define GO_STATE_BUSY (9) ///< Sensor connected, but currently controlled by another sensor (cannot be configured directly).
138 #define GO_STATE_READY (10) ///< Sensor connected and ready to accept configuration commands.
139 #define GO_STATE_RUNNING (11) ///< Sensor connected and currently running.
140 #define GO_STATE_UPGRADING (12) ///< Sensor is currently being upgraded.
141 /**@}*/
142 
143 typedef k32s GoBuddyState;
144 /** @name GoBuddyState
145 *@{*/
146 #define GO_BUDDY_STATE_ERROR (0) ///< General Error.
147 #define GO_BUDDY_STATE_CONNECTING (3) ///< Buddy is currently connecting.
148 #define GO_BUDDY_STATE_CONNECTABLE (2) ///< Sensor can be buddied to.
149 #define GO_BUDDY_STATE_CONNECTED (1) ///< Buddy is connected.
150 #define GO_BUDDY_STATE_ALREADY_BUDDIED (-100) ///< Sensor is already buddied to something else.
151 #define GO_BUDDY_STATE_INVALID_STATE (-99) ///< Buddy is in an invalid state.
152 #define GO_BUDDY_STATE_VERSION_MISMATCH (-98) ///< The sensors are not currently running the same Gocator firmware version.
153 #define GO_BUDDY_STATE_MODEL_MISMATCH (-97) ///< Sensors are not of the same model number and cannot be buddied.
154 #define GO_BUDDY_STATE_UNREACHABLE_ADDRESS (-96) ///< Sensor cannot be connected to.
155 #define GO_BUDDY_STATE_DEVICE_MISSING (-95) ///< Buddied sensor cannot be detected.
156 /**@}*/
157 
158 
159 /**
160  * @struct GoRole
161  * @extends kValue
162  * @ingroup GoSdk
163  * @brief Represents a user role.
164  *
165  * The following enumerators are defined:
166  * - #GO_ROLE_MAIN
167  * - #GO_ROLE_BUDDY
168  */
169 typedef k32s GoRole;
170 /** @name GoRole
171  *@{*/
172 #define GO_ROLE_MAIN (0) ///< Sensor is operating as a main sensor.
173 #define GO_ROLE_BUDDY (1) ///< Sensor is operating as a buddy sensor.
174 #define GOROLE_BUDDYIDX(buddyidx) ((GoRole)GO_ROLE_BUDDY + buddyidx) //finds buddy by index, this expects a zero buddy index as the first index to all buddies
175 /**@}*/
176 
177 /**
178  * @struct GoAcceleratorConnectionStatus
179  * @extends kValue
180  * @ingroup GoSdk
181  * @brief Represents the status of the Accelerator connection.
182  *
183  * The following enumerators are defined:
184  * - #GO_ACCELERATOR_CONNECTION_STATUS_CONNECTED
185  * - #GO_ACCELERATOR_CONNECTION_STATUS_DISCONNECTED
186  * - #GO_ACCELERATOR_CONNECTION_STATUS_ERROR
187  */
189 /** @name GoAcceleratorConnectionStatus
190  *@{*/
191 #define GO_ACCELERATOR_CONNECTION_STATUS_CONNECTED (0) ///< Accelerated sensor has connected.
192 #define GO_ACCELERATOR_CONNECTION_STATUS_DISCONNECTED (1) ///< Accelerated sensor has disconnected.
193 #define GO_ACCELERATOR_CONNECTION_STATUS_ERROR (2) ///< An error occurred with the accelerated sensor connection.
194 /**@}*/
195 
196 /**
197  * @struct GoAlignmentState
198  * @extends kValue
199  * @ingroup GoSdk
200  * @brief Represents an alignment state.
201  *
202  * The following enumerators are defined:
203  * - #GO_ALIGNMENT_STATE_NOT_ALIGNED
204  * - #GO_ALIGNMENT_STATE_ALIGNED
205  */
206 typedef k32s GoAlignmentState;
207 /** @name GoAlignmentState
208  *@{*/
209 #define GO_ALIGNMENT_STATE_NOT_ALIGNED (0) ///< Sensor is not aligned.
210 #define GO_ALIGNMENT_STATE_ALIGNED (1) ///< Sensor is aligned.
211 /**@}*/
212 
213 /**
214  * @struct GoAlignmentRef
215  * @extends kValue
216  * @ingroup GoSdk
217  * @brief Represents an alignment reference.
218  *
219  * The following enumerators are defined:
220  * - #GO_ALIGNMENT_REF_FIXED
221  * - #GO_ALIGNMENT_REF_DYNAMIC
222  */
223 typedef k32s GoAlignmentRef;
224 /** @name GoAlignmentRef
225  *@{*/
226 #define GO_ALIGNMENT_REF_FIXED (0) ///< The alignment used will be specific to the sensor.
227 #define GO_ALIGNMENT_REF_DYNAMIC (1) ///< The alignment used will be specific to the current job if saved.
228 /**@}*/
229 
230 /**
231  * @struct GoMode
232  * @extends kValue
233  * @ingroup GoSdk
234  * @brief Represents a scan mode.
235  *
236  * The following enumerators are defined:
237  * - #GO_MODE_UNKNOWN
238  * - #GO_MODE_VIDEO
239  * - #GO_MODE_RANGE
240  * - #GO_MODE_PROFILE
241  * - #GO_MODE_SURFACE
242  */
243 typedef k32s GoMode;
244 /** @name GoMode
245  *@{*/
246 #define GO_MODE_UNKNOWN (-1) ///< Unknown scan mode.
247 #define GO_MODE_VIDEO (0) ///< Video scan mode.
248 #define GO_MODE_RANGE (1) ///< Range scan mode.
249 #define GO_MODE_PROFILE (2) ///< Profile scan mode.
250 #define GO_MODE_SURFACE (3) ///< Surface scan mode.
251 /**@}*/
252 
253 
254 /**
255  * @struct GoTrigger
256  * @extends kValue
257  * @ingroup GoSdk
258  * @brief Represents a trigger.
259  *
260  * The following enumerators are defined:
261  * - #GO_TRIGGER_TIME
262  * - #GO_TRIGGER_ENCODER
263  * - #GO_TRIGGER_INPUT
264  * - #GO_TRIGGER_SOFTWARE
265  */
266 typedef k32s GoTrigger;
267 /** @name GoTrigger
268  *@{*/
269 #define GO_TRIGGER_TIME (0) ///< The sensor will be time triggered.
270 #define GO_TRIGGER_ENCODER (1) ///< The sensor will be encoder triggered.
271 #define GO_TRIGGER_INPUT (2) ///< The sensor will be digital input triggered.
272 #define GO_TRIGGER_SOFTWARE (3) ///< The sensor will be software triggered.
273 /** @} */
274 
275 /**
276  * @struct GoEncoderTriggerMode
277  * @extends kValue
278  * @ingroup GoSdk
279  * @brief Represents an encoder's triggering behavior.
280  *
281  * The following enumerators are defined:
282  * - #GO_ENCODER_TRIGGER_MODE_TRACK_REVERSE
283  * - #GO_ENCODER_TRIGGER_MODE_IGNORE_REVERSE
284  * - #GO_ENCODER_TRIGGER_MODE_BIDIRECTIONAL
285  */
286 typedef k32s GoEncoderTriggerMode;
287 /** @name GoEncoderTriggerMode
288  *@{*/
289 #define GO_ENCODER_TRIGGER_MODE_TRACK_REVERSE (0) ///< Do not reverse trigger. Track reverse motion to prevent repeat forward triggers.
290 #define GO_ENCODER_TRIGGER_MODE_IGNORE_REVERSE (1) ///< Do not reverse trigger. Forward trigger unconditionally.
291 #define GO_ENCODER_TRIGGER_MODE_BIDIRECTIONAL (2) ///< Forward and reverse trigger.
292 /** @} */
293 
294 /**
295  * @struct GoFrameRateMaxSource
296  * @extends kValue
297  * @ingroup GoSdk
298  * @brief Represents the current maximum frame rate limiting source.
299  *
300  * The following enumerators are defined:
301  * - #GO_FRAME_RATE_MAX_SOURCE_CAMERA
302  * - #GO_FRAME_RATE_MAX_SOURCE_PART_DETECTION
303  */
304 typedef k32s GoFrameRateMaxSource;
305 /** @name GoFrameRateMaxSource
306  *@{*/
307 #define GO_FRAME_RATE_MAX_SOURCE_CAMERA (0) ///< Limited by the sensor's camera configuration.
308 #define GO_FRAME_RATE_MAX_SOURCE_PART_DETECTION (1) ///< Limited by part detection logic.
309 /** @} */
310 
311 /**
312  * @struct GoEncoderSpacingMinSource
313  * @extends kValue
314  * @ingroup GoSdk
315  * @brief Represents the current encoder period limiting source.
316  *
317  * The following enumerators are defined:
318  * - #GO_ENCODER_PERIOD_MAX_SOURCE_RESOLUTION
319  * - #GO_ENCODER_PERIOD_MAX_SOURCE_PART_DETECTION
320  */
322 /** @name GoEncoderSpacingMinSource
323  *@{*/
324 #define GO_ENCODER_PERIOD_MAX_SOURCE_RESOLUTION (0) ///< Limited by encoder resolution.
325 #define GO_ENCODER_PERIOD_MAX_SOURCE_PART_DETECTION (1) ///< Limited by part detection logic.
326 /**@}*/
327 
328 /**
329  * @struct GoTriggerUnits
330  * @extends kValue
331  * @ingroup GoSdk
332  * @brief Represents the system's primary synchronization domain
333  *
334  * The following enumerators are defined:
335  * - #GO_TRIGGER_UNIT_TIME
336  * - #GO_TRIGGER_UNIT_ENCODER
337  */
338 typedef k32s GoTriggerUnits;
339 /** @name GoTriggerUnits
340  *@{*/
341 #define GO_TRIGGER_UNIT_TIME (0) ///< Base the system on the internal clock.
342 #define GO_TRIGGER_UNIT_ENCODER (1) ///< Base the system on the encoder.
343 /**@}*/
344 
345 /**
346  * @struct GoExposureMode
347  * @extends kValue
348  * @ingroup GoSdk
349  * @brief Represents all possible exposure modes.
350  *
351  * The following enumerators are defined:
352  * - #GO_EXPOSURE_MODE_SINGLE
353  * - #GO_EXPOSURE_MODE_MULTIPLE
354  * - #GO_EXPOSURE_MODE_DYNAMIC
355  */
356 typedef k32s GoExposureMode;
357 /** @name GoExposureMode
358  *@{*/
359 #define GO_EXPOSURE_MODE_SINGLE (0) ///< Single exposure mode.
360 #define GO_EXPOSURE_MODE_MULTIPLE (1) ///< Multiple exposure mode.
361 #define GO_EXPOSURE_MODE_DYNAMIC (2) ///< Dynamic exposure mode.
362 /**@}*/
363 
364 /**
365  * @struct GoOrientation
366  * @extends kValue
367  * @ingroup GoSdk
368  * @brief Represents a sensor orientation type.
369  *
370  * The following enumerators are defined:
371  * - #GO_ORIENTATION_WIDE
372  * - #GO_ORIENTATION_OPPOSITE
373  * - #GO_ORIENTATION_REVERSE
374  */
375 typedef k32s GoOrientation;
376 /** @name GoOrientation
377  *@{*/
378 #define GO_ORIENTATION_WIDE (0) ///< Wide sensor orientation.
379 #define GO_ORIENTATION_OPPOSITE (1) ///< Opposite sensor orientation.
380 #define GO_ORIENTATION_REVERSE (2) ///< Reverse sensor orientation.
381 /**@}*/
382 
383 /**
384  * @struct GoInputSource
385  * @extends kValue
386  * @ingroup GoSdk
387  * @brief Represents a data input source.
388  *
389  * The following enumerators are defined:
390  * - #GO_INPUT_SOURCE_LIVE
391  * - #GO_INPUT_SOURCE_RECORDING
392  */
393 typedef k32s GoInputSource;
394 /** @name GoInputSource
395  *@{*/
396 #define GO_INPUT_SOURCE_LIVE (0) ///< The current data input source is from live sensor data.
397 #define GO_INPUT_SOURCE_RECORDING (1) ///< The current data source is from a replay.
398 /**@}*/
399 
400 /**
401  * @struct GoSeekDirection
402  * @extends kValue
403  * @ingroup GoSdk
404  * @brief Represents a playback seek direction.
405  *
406  * The following enumerators are defined:
407  * - #GO_SEEK_DIRECTION_FORWARD
408  * - #GO_SEEK_DIRECTION_BACKWARD
409  */
410 typedef k32s GoSeekDirection;
411 /** @name GoSeekDirection
412  *@{*/
413 #define GO_SEEK_DIRECTION_FORWARD (0) ///< Seek forward in the current replay.
414 #define GO_SEEK_DIRECTION_BACKWARD (1) ///< Seek backward in the current replay.
415 /**@}*/
416 
417 /**
418  * @struct GoDataSource
419  * @extends kValue
420  * @ingroup GoSdk
421  * @brief Represents a data source.
422  *
423  * The following enumerators are defined:
424  * #GO_DATA_SOURCE_NONE
425  * #GO_DATA_SOURCE_TOP
426  * #GO_DATA_SOURCE_BOTTOM
427  * #GO_DATA_SOURCE_TOP_LEFT
428  * #GO_DATA_SOURCE_TOP_RIGHT
429  * #GO_DATA_SOURCE_TOP_BOTTOM
430  * #GO_DATA_SOURCE_LEFT_RIGHT
431  */
432 typedef k32s GoDataSource;
433 /** @name GoDataSource
434  *@{*/
435 #define GO_DATA_SOURCE_NONE (-1) ///< Used to represent a buddy device when the buddy is not connected
436 #define GO_DATA_SOURCE_TOP (0) ///< Represents main device when in a single sensor or opposite orientation buddy setup. Also represents the combined main and buddy in a wide or reverse orientation
437 #define GO_DATA_SOURCE_BOTTOM (1) ///< Represents the buddy device in an opposite orientation buddy configuration
438 #define GO_DATA_SOURCE_TOP_LEFT (2) ///< Represents the main device in a wide or reverse orientation buddy configuration
439 #define GO_DATA_SOURCE_TOP_RIGHT (3) ///< Represents the buddy device in a wide or reverse orientation buddy configuration
440 #define GO_DATA_SOURCE_TOP_BOTTOM (4) ///< Represents both the main and buddy devices in a opposite orientation
441 #define GO_DATA_SOURCE_LEFT_RIGHT (5) ///< Represents a buddy configuration where data from the two devices are not merged (e.g. buddied 1000 series sensors in a wide layout)
442 /**@}*/
443 
444 /**
445  * @struct GoSpacingIntervalType
446  * @extends kValue
447  * @ingroup GoSdk
448  * @brief Represents spacing interval types.
449  *
450  * The following enumerators are defined:
451  * - #GO_SPACING_INTERVAL_TYPE_MAX_RES
452  * - #GO_SPACING_INTERVAL_TYPE_BALANCED
453  * - #GO_SPACING_INTERVAL_TYPE_MAX_SPEED
454  */
456 /** @name GoSpacingIntervalType
457  *@{*/
458 #define GO_SPACING_INTERVAL_TYPE_MAX_RES (0) ///< Maximum resolution spacing interval type.
459 #define GO_SPACING_INTERVAL_TYPE_BALANCED (1) ///< Balanced spacing interval type.
460 #define GO_SPACING_INTERVAL_TYPE_MAX_SPEED (2) ///< Maximum speed spacing interval type.
461 #define GO_SPACING_INTERVAL_TYPE_CUSTOM (3) ///< The user specified custom interval.
462 /**@}*/
463 
464 /**
465  * @struct GoTriggerSource
466  * @extends kValue
467  * @ingroup GoSdk
468  * @brief Represents a trigger source type.
469  *
470  * The following enumerators are defined:
471  * - #GO_TRIGGER_SOURCE_TIME
472  * - #GO_TRIGGER_SOURCE_ENCODER
473  * - #GO_TRIGGER_SOURCE_INPUT
474  * - #GO_TRIGGER_SOURCE_SOFTWARE
475  */
476 typedef k32s GoTriggerSource;
477 /** @name GoTriggerSource
478  *@{*/
479 #define GO_TRIGGER_SOURCE_TIME (0) ///< Trigger on internal clock.
480 #define GO_TRIGGER_SOURCE_ENCODER (1) ///< Trigger on encoder.
481 #define GO_TRIGGER_SOURCE_INPUT (2) ///< Trigger on digital input.
482 #define GO_TRIGGER_SOURCE_SOFTWARE (3) ///< Trigger on software messages.
483 /**@}*/
484 
485 /**
486  * @struct GoAlignmentType
487  * @extends kValue
488  * @ingroup GoSdk
489  * @brief Represents an alignment type.
490  *
491  * The following enumerators are defined:
492  * - #GO_ALIGNMENT_TYPE_STATIONARY
493  * - #GO_ALIGNMENT_TYPE_MOVING
494  */
495 typedef k32s GoAlignmentType;
496 /** @name GoAlignmentType
497  *@{*/
498 #define GO_ALIGNMENT_TYPE_STATIONARY (0) ///< Stationary target alignment type.
499 #define GO_ALIGNMENT_TYPE_MOVING (1) ///< Moving target alignment type.
500 /**@}*/
501 
502 /**
503  * @struct GoAlignmentTarget
504  * @extends kValue
505  * @ingroup GoSdk
506  * @brief Represents an alignment target type.
507  *
508  * The following enumerators are defined:
509  * - #GO_ALIGNMENT_TARGET_NONE
510  * - #GO_ALIGNMENT_TARGET_DISK
511  * - #GO_ALIGNMENT_TARGET_BAR
512  * - #GO_ALIGNMENT_TARGET_PLATE
513  * - #GO_ALIGNMENT_TARGET_POLYGON
514  */
515 
516 typedef k32s GoAlignmentTarget;
517 /** @name GoAlignmentTarget
518  *@{*/
519 #define GO_ALIGNMENT_TARGET_NONE (0) ///< No calibration target.
520 #define GO_ALIGNMENT_TARGET_DISK (1) ///< Calibration disk.
521 #define GO_ALIGNMENT_TARGET_BAR (2) ///< Calibration bar.
522 #define GO_ALIGNMENT_TARGET_PLATE (3) ///< Calibration plate.
523 #define GO_ALIGNMENT_TARGET_POLYGON (5) ///< Calibration polygon.
524 /**@}*/
525 
526 
527 /**
528  * @struct GoAlignmentDegreesOfFreedom
529  * @extends kValue
530  * @ingroup GoSdk
531  * @brief Represents an alignment degree of freedom setting.
532  *
533  * The following enumerators are defined:
534  * - #GO_ALIGNMENT_DOF_NONE
535  * - #GO_ALIGNMENT_3DOF_XZ_Y
536  * - #GO_ALIGNMENT_4DOF_XYZ_Y
537  * - #GO_ALIGNMENT_5DOF_XYZ_YZ
538  * - #GO_ALIGNMENT_6DOF_XYZ_XYZ
539  */
541 /** @name GoAlignmentDegreesOfFreedom
542  * Enumerations are 6-bit bit masks representing (left to right) axis xyz followed by angles xyz
543  *@{*/
544 #define GO_ALIGNMENT_DOF_NONE (0x00) ///< No degrees of freedom selected.
545 #define GO_ALIGNMENT_3DOF_XZ_Y (0x2A) ///< 3 degrees of freedom: x,z angle y.
546 #define GO_ALIGNMENT_4DOF_XYZ_Y (0x3A) ///< 4 degrees of freedom: x,y,z angle y.
547 #define GO_ALIGNMENT_5DOF_XYZ_YZ (0x3B) ///< 5 degrees of freedom: x,y,z angles y,z.
548 #define GO_ALIGNMENT_6DOF_XYZ_XYZ (0x3F) ///< 6 degrees of freedom: x,y,z angles x,y,z.
549 /**@}*/
550 
551 /**
552  * @struct GoPolygonCornerParameters
553  * @extends kValue
554  * @ingroup GoSdk
555  * @brief Corner parameters for polygon corner alignment.
556  */
558 {
559  kPoint64f point;
560  kArrayList deviceIdxs; // of type kSize
562 
563 /**
564  * @struct GoReplayExportSourceType
565  * @extends kValue
566  * @ingroup GoSdk
567  * @brief Represents the replay export source type.
568  *
569  * The following enumerators are defined:
570  * - #GO_REPLAY_EXPORT_SOURCE_PRIMARY
571  * - #GO_REPLAY_EXPORT_SOURCE_INTENSITY
572  */
574 /** @name GoReplayExportSourceType
575  *@{*/
576 #define GO_REPLAY_EXPORT_SOURCE_PRIMARY (0) ///< Primary data(relevant to the current scan mode) replay export.
577 #define GO_REPLAY_EXPORT_SOURCE_INTENSITY (1) ///< Intensity data replay export.
578 /**@}*/
579 
580 /**
581  * @struct GoFamily
582  * @extends kValue
583  * @ingroup GoSdk
584  * @brief Represents the supported Gocator hardware families.
585  *
586  * The following enumerators are defined:
587  * - #GO_FAMILY_1000
588  * - #GO_FAMILY_2000
589  * - #GO_FAMILY_3000
590  */
591 typedef k32s GoFamily;
592 /** @name GoFamily
593  *@{*/
594 #define GO_FAMILY_UNKNOWN (-1) ///< Unidentified sensor family.
595 #define GO_FAMILY_1000 (0) ///< 1x00 series sensors.
596 #define GO_FAMILY_2000 (1) ///< 2x00 series sensors.
597 #define GO_FAMILY_3000 (2) ///< 3x00 series sensors.
598 /**@}*/
599 
600 /**
601  * @struct GoDecision
602  * @extends kValue
603  * @ingroup GoSdk
604  * @brief Represents the measurement output decision values. Bit 0 represents the decision value, while bits 1 through 7 represent the decision code, outlined by GoDecisionCode.
605  * @see GoDecisionCode
606  *
607  * The following enumerators are defined:
608  * - #GO_DECISION_FAIL
609  * - #GO_DECISION_PASS
610  */
611 typedef k8u GoDecision;
612 /** @name GoDecision
613  *@{*/
614 #define GO_DECISION_FAIL (0) ///< The measurement value is either valid and falls outside the defined passing decision range or is invalid. The failure error code can be used to determine whether the value was valid.
615 #define GO_DECISION_PASS (1) ///< The measurement value is valid and it falls within the defined passing decision range.
616 /**@}*/
617 
618 
619 /**
620  * @struct GoDecisionCode
621  * @extends kValue
622  * @ingroup GoSdk
623  * @brief Represents the possible measurement decision codes.
624  *
625  * The following enumerators are defined:
626  * - #GO_DECISION_CODE_OK
627  * - #GO_DECISION_CODE_INVALID_ANCHOR
628  * - #GO_DECISION_CODE_INVALID_VALUE
629  */
630 typedef k8u GoDecisionCode;
631 /** @name GoDecisionCode
632  *@{*/
633 #define GO_DECISION_CODE_OK (0) ///< The measurement value is valid and it falls outside the defined passing decision range.
634 #define GO_DECISION_CODE_INVALID_VALUE (1) ///< The measurement value is invalid.
635 #define GO_DECISION_CODE_INVALID_ANCHOR (2) ///< The tool associated with the measurement is anchored is has received invalid measurement data from its anchoring source(s).
636 /**@}*/
637 
638 /**
639 * @struct GoIntensitySource
640 * @extends kValue
641 * @ingroup GoSdk
642 * @brief Represents all possible sources of intensity data.
643 *
644 * The following enumerators are defined:
645 * - #GO_INTENSITY_SOURCE_BOTH
646 * - #GO_INTENSITY_SOURCE_FRONT
647 * - #GO_INTENSITY_SOURCE_BACK
648 */
649 typedef k32s GoIntensitySource;
650 /** @name GoIntensitySource
651 *@{*/
652 #define GO_INTENSITY_SOURCE_BOTH (0) ///< Intensity data based on both cameras.
653 #define GO_INTENSITY_SOURCE_FRONT (1) ///< Intensity data based on front camera.
654 #define GO_INTENSITY_SOURCE_BACK (2) ///< Intensity data based on back camera.
655 /**@}*/
656 
657 /**
658 * @struct GoIntensityMode
659 * @extends kValue
660 * @ingroup GoSdk
661 * @brief Represents all possible intensity generation modes for multiple exposures.
662 *
663 * The following enumerators are defined:
664 * - #GO_INTENSITY_MODE_AUTO
665 * - #GO_INTENSITY_MODE_PRESERVE_ORIGINAL
666 */
667 typedef k32s GoIntensityMode;
668 
669 /** @name GoIntensityMode
670 *@{*/
671 #define GO_INTENSITY_MODE_AUTO (0) ///< Automatically pick and scale the most reliable intensity data.
672 #define GO_INTENSITY_MODE_PRESERVE_ORIGINAL (1) ///< Preserve the original values as much as possible.
673 /**@}*/
674 
675 /**
676  * @struct GoStates
677  * @extends kValue
678  * @ingroup GoSdk
679  * @brief Sensor state, login, alignment information, recording state, playback source, uptime, playback information, and auto-start setting state.
680  */
681 typedef struct GoStates
682 {
683  GoState sensorState; ///< The state of the sensor.
684  GoUser loginType; ///< The logged in user.
685  GoAlignmentRef alignmentReference; ///< The alignment reference of the sensor.
686  GoAlignmentState alignmentState; ///< The alignment state of the sensor.
687  kBool recordingEnabled; ///< The current state of recording on the sensor.
688  k32s playbackSource; ///< The current playback source of the sensor.
689  k32u uptimeSec; ///< Sensor uptime in seconds.
690  k32u uptimeMicrosec; ///< Sensor uptime in microseconds.
691  k32u playbackPos; ///< The playback position index.
692  k32u playbackCount; ///< The playback count.
693  kBool autoStartEnabled; ///< The auto-start enabled state.
694  kBool isAccelerator; ///< The accelerated state of the sensor.
695  kBool quickEditEnabled; ///< The current state of editting.
696 } GoStates;
697 
698 /**
699  * @struct GoAddressInfo
700  * @extends kValue
701  * @ingroup GoSdk
702  * @brief Sensor network address settings.
703  */
704 typedef struct GoAddressInfo
705 {
706  kBool useDhcp; ///< Sensor uses DHCP?
707  kIpAddress address; ///< Sensor IP address.
708  kIpAddress mask; ///< Sensor subnet bit-mask.
709  kIpAddress gateway; ///< Sensor gateway address.
710 } GoAddressInfo;
711 
712 /**
713  * @struct GoPortInfo
714  * @extends kValue
715  * @ingroup GoSdk
716  * @brief Ports used from a source device.
717  */
718 typedef struct GoPortInfo
719 {
720  k16u controlPort; ///< Control channel port.
721  k16u upgradePort; ///< Upgrade channel port.
722  k16u webPort; ///< Web channel port.
723  k16u dataPort; ///< Data channel port.
724  k16u healthPort; ///< Health channel port.
725 } GoPortInfo;
726 
727 /**
728 * @struct GoBuddyInfo
729 * @extends kValue
730 * @ingroup GoSdk
731 * @brief Buddy related status of another sensor.
732 */
733 typedef struct GoBuddyInfo
734 {
735  k32u id; ///< Serial number of the device.
736  GoBuddyState state;///< Buddy state of this device.
737 } GoBuddyInfo;
738 
739 /**
740  * @struct GoElement64f
741  * @extends kValue
742  * @ingroup GoSdk
743  * @brief Represents a 64-bit floating point configuration element with a range and enabled state.
744  */
745 typedef struct GoElement64f
746 {
747  kBool enabled; ///< Represents whether the element value is currently used. (not always applicable)
748  k64f systemValue; ///< The system value. (not always applicable)
749  k64f value; ///< The element's double field value.
750  k64f max; ///< The maximum allowable value that can be set for this element.
751  k64f min; ///< The minimum allowable value that can be set for this element.
752 } GoElement64f;
753 
754 /**
755  * @struct GoElement32u
756  * @extends kValue
757  * @ingroup GoSdk
758  * @brief Represents a 32-bit unsigned integer configuration element with a range and enabled state.
759  */
760 typedef struct GoElement32u
761 {
762  kBool enabled; ///< Represents whether the element value is currently used.
763  k32u systemValue; ///< The system value. (not always applicable)
764  k32u value; ///< The element's 32-bit unsigned field value.
765  k32u max; ///< The maximum allowable value that can be set for this element.
766  k32u min; ///< The minimum allowable value that can be set for this element.
767 } GoElement32u;
768 
769 /**
770  * @struct GoElementBool
771  * @extends kValue
772  * @ingroup GoSdk
773  * @brief Represents a boolean configuration element with an enabled state.
774  */
775 typedef struct GoElementBool
776 {
777  kBool enabled; ///< Represents whether the element value is currently used.
778  kBool systemValue; ///< The system value. (not always applicable)
779  kBool value; ///< The element's boolean field value.
780 } GoElementBool;
781 
782 /**
783  * @struct GoFilter
784  * @extends kValue
785  * @ingroup GoSdk
786  * @brief Represents a filter configuration element.
787  */
788 typedef struct GoFilter
789 {
790  kBool used; ///< Represents whether the filter field is currently used.
791  GoElement64f value; ///< The filter's configuration properties
792 } GoFilter;
793 
794 /**
795  * @struct GoActiveAreaConfig
796  * @extends kValue
797  * @ingroup GoSdk
798  * @brief Represents an active area configuration element.
799  */
800 typedef struct GoActiveAreaConfig
801 {
802  GoElement64f x; ///< The X offset of the active area. (mm)
803  GoElement64f y; ///< The Y offset of the active area. (mm)
804  GoElement64f z; ///< The Z offset of the active area. (mm)
805  GoElement64f height; ///< The height of the active area. (mm)
806  GoElement64f length; ///< The length of the active area. (mm)
807  GoElement64f width; ///< The width of the active area. (mm)
809 
810 /**
811  * @struct GoTransformation
812  * @extends kValue
813  * @ingroup GoSdk
814  * @brief Represents an alignment element.
815  */
816 typedef struct GoTransformation
817 {
818  k64f x; ///< The X offset of the transformation. (mm)
819  k64f y; ///< The Y offset of the transformation. (mm)
820  k64f z; ///< The Z offset of the transformation. (mm)
821  k64f xAngle; ///< The X angle of the transformation. (degrees)
822  k64f yAngle; ///< The Y angle of the transformation. (degrees)
823  k64f zAngle; ///< The Z angle of the transformation. (degrees)
825 
826 /**
827  * @struct GoTransformedDataRegion
828  * @extends kValue
829  * @ingroup GoSdk
830  * @brief Represents a transformed data region.
831  */
833 {
834  k64f x; ///< The X offset of the transformed data region. (mm)
835  k64f y; ///< The Y offset of the transformed data region. (mm)
836  k64f z; ///< The Z offset of the transformed data region. (mm)
837  k64f width; ///< The width of the transformed data region. (mm)
838  k64f length; ///< The length of the transformed data region. (mm)
839  k64f height; ///< The height of the transformed data region. (mm)
841 
842 /**
843  * @struct GoOutputCompositeSource
844  * @extends kValue
845  * @ingroup GoSdk
846  * @brief Represents a composite data source.
847  */
849 {
850  k32s id; ///< The ID of the underlying data source.
851  GoDataSource dataSource; ///< The data source of the composite data source.
853 
854 /**
855  * @struct GoAsciiOperation
856  * @extends kValue
857  * @ingroup GoSdk-Output
858  * @brief Represents an ASCII protocol operational type.
859  *
860  * The following enumerators are defined:
861  * - #GO_ASCII_OPERATION_ASYNCHRONOUS
862  * - #GO_ASCII_OPERATION_POLLING
863  */
864 typedef k32s GoAsciiOperation;
865 /** @name GoAsciiOperation
866  *@{*/
867 #define GO_ASCII_OPERATION_ASYNCHRONOUS (0) ///< Selected measurement output will be sent upon sensor start.
868 #define GO_ASCII_OPERATION_POLLING (1) ///< Measurement output will only be sent as requested.
869 /**@}*/
870 
871 /**
872  * @struct GoAsciiStandardFormatMode
873  * @extends kValue
874  * @ingroup GoSdk-Output
875  * @brief Represents an ASCII standard format type.
876  *
877  * The following enumerators are defined:
878  * - #GS_ASCII_FORMAT_MODE_MEAS
879  * - #GS_ASCII_FORMAT_MODE_ENCODER_AND_FRAME
880  */
882 /** @name GoAsciiStandardFormatMode
883  *@{*/
884 #define GS_ASCII_FORMAT_MODE_MEAS (0) ///< Standard format will output with measurement values and decisions.
885 #define GS_ASCII_FORMAT_MODE_ENCODER_AND_FRAME (1) ///< Standard format will output with Encoder and Frame, then measurement values and decisions.
886 /**@}*/
887 
888 /**
889  * @struct GoSelcomFormat
890  * @extends kValue
891  * @ingroup GoSdk-Serial
892  * @brief Represents the selcom format followed on the serial output.
893  *
894  * The following enumerators are defined:
895  * - #GO_SELCOM_FORMAT_SLS
896  * - #GO_SELCOM_FORMAT_12BIT_ST
897  * - #GO_SELCOM_FORMAT_14BIT
898  * - #GO_SELCOM_FORMAT_14BIT_ST
899  */
900 typedef k32s GoSelcomFormat;
901 /** @name GoSelcomFormat
902  *@{*/
903 #define GO_SELCOM_FORMAT_SLS (0) ///< Selcom uses the SLS format
904 #define GO_SELCOM_FORMAT_12BIT_ST (1) ///< Selcom uses the 12-Bit Search/Track format
905 #define GO_SELCOM_FORMAT_14BIT (2) ///< Selcom uses the 14-Bit format
906 #define GO_SELCOM_FORMAT_14BIT_ST (3) ///< Selcom uses the 14-Bit Search/Track format
907 /**@}*/
908 
909 /**
910  * @struct GoSerialProtocol
911  * @extends kValue
912  * @ingroup GoSdk-Serial
913  * @brief Represents all serial output protocols.
914  *
915  * The following enumerators are defined:
916  * - #GO_SERIAL_PROTOCOL_GOCATOR
917  * - #GO_SERIAL_PROTOCOL_SELCOM
918  */
919 typedef k32s GoSerialProtocol;
920 /** @name GoSerialProtocol
921  *@{*/
922 #define GO_SERIAL_PROTOCOL_GOCATOR (0) ///< Gocator serial protocol.
923 #define GO_SERIAL_PROTOCOL_SELCOM (1) ///< Selcom serial protocol.
924 /**@}*/
925 
926 
927 /**
928  * @struct GoAnalogTrigger
929  * @extends kValue
930  * @ingroup GoSdk-Analog
931  * @brief Represents an analog output trigger.
932  *
933  * The following enumerators are defined:
934  * - #GO_ANALOG_TRIGGER_MEASUREMENT
935  * - #GO_ANALOG_TRIGGER_SOFTWARE
936  */
937 typedef k32s GoAnalogTrigger;
938 /** @name GoAnalogTrigger
939  *@{*/
940 #define GO_ANALOG_TRIGGER_MEASUREMENT (0) ///< Analog output triggered by measurement data.
941 #define GO_ANALOG_TRIGGER_SOFTWARE (1) ///< Analog output triggered by software.
942 /**@}*/
943 
944 /**
945  * @struct GoDigitalPass
946  * @extends kValue
947  * @ingroup GoSdk-Digital
948  * @brief Represents a digital output condition.
949  *
950  * The following enumerators are defined:
951  * - #GO_DIGITAL_PASS_TRUE
952  * - #GO_DIGITAL_PASS_FALSE
953  * - #GO_DIGITAL_PASS_ALWAYS
954  */
955 typedef k32s GoDigitalPass;
956 /** @name GoDigitalPass
957  *@{*/
958 #define GO_DIGITAL_PASS_TRUE (0) ///< Digital output triggers when all selected measurements pass.
959 #define GO_DIGITAL_PASS_FALSE (1) ///< Digital output triggers when all selected measurements fail.
960 #define GO_DIGITAL_PASS_ALWAYS (2) ///< Digital output triggers on every scan.
961 /**@}*/
962 
963 /**
964  * @struct GoDigitalSignal
965  * @extends kValue
966  * @ingroup GoSdk-Digital
967  * @brief Represents a digital output signal type.
968  *
969  * The following enumerators are defined:
970  * - #GO_DIGITAL_SIGNAL_PULSED
971  * - #GO_DIGITAL_SIGNAL_CONTINUOUS
972  */
973 typedef k32s GoDigitalSignal;
974 /** @name GoDigitalSignal
975  *@{*/
976 #define GO_DIGITAL_SIGNAL_PULSED (0) ///< Digital output is pulsed when triggered.
977 #define GO_DIGITAL_SIGNAL_CONTINUOUS (1) ///< Digital output is continuous when triggered.
978 /**@}*/
979 
980 /**
981  * @struct GoDigitalEvent
982  * @extends kValue
983  * @ingroup GoSdk-Digital
984  * @brief Represents a digital output event.
985  *
986  * The following enumerators are defined:
987  * - #GO_DIGITAL_EVENT_MEASUREMENT
988  * - #GO_DIGITAL_EVENT_SOFTWARE
989  * - #GO_DIGITAL_EVENT_ALIGNMENT
990  * - #GO_DIGITAL_EVENT_EXPOSURE_BEGIN
991  * - #GO_DIGITAL_EVENT_EXPOSURE_END
992  */
993 typedef k32s GoDigitalEvent;
994 /** @name GoDigitalEvent
995  *@{*/
996 #define GO_DIGITAL_EVENT_MEASUREMENT (1) ///< Digital output is triggered by measurement data.
997 #define GO_DIGITAL_EVENT_SOFTWARE (2) ///< Digital output is triggered by software.
998 #define GO_DIGITAL_EVENT_ALIGNMENT (3) ///< Digital output represents the alignment status.
999 #define GO_DIGITAL_EVENT_EXPOSURE_BEGIN (4) ///< Digital output is triggered at the start of exposure.
1000 #define GO_DIGITAL_EVENT_EXPOSURE_END (5) ///< Digital output is triggered at the end of exposure, prior to processing.
1001 /**@}*/
1002 
1003 /**
1004  * @struct GoAnalogEvent
1005  * @extends kValue
1006  * @ingroup GoSdk-Analog
1007  * @brief Represents a analog output event.
1008  *
1009  * The following enumerators are defined:
1010  * - #GO_ANALOG_EVENT_MEASURMENT
1011  * - #GO_ANALOG_EVENT_SOFTWARE
1012  */
1013 typedef k32s GoAnalogEvent;
1014 /** @name GoAnalogEvent
1015  *@{*/
1016 #define GO_ANALOG_EVENT_MEASURMENT (1) ///< Analog output is triggered by measurement data.
1017 #define GO_ANALOG_EVENT_SOFTWARE (2) ///< Analog output is triggered by software.
1018 /**@}*/
1019 
1020 /**
1021  * @struct GoEthernetProtocol
1022  * @extends kValue
1023  * @ingroup GoSdk-Ethernet
1024  * @brief Represents a ethernet output protocol.
1025  *
1026  * The following enumerators are defined:
1027  * - #GO_ETHERNET_PROTOCOL_GOCATOR
1028  * - #GO_ETHERNET_PROTOCOL_MODBUS
1029  * - #GO_ETHERNET_PROTOCOL_ETHERNET_IP
1030  * - #GO_ETHERNET_PROTOCOL_ASCII
1031  */
1032 typedef k32s GoEthernetProtocol;
1033 /** @name GoEthernetProtocol
1034  *@{*/
1035 #define GO_ETHERNET_PROTOCOL_GOCATOR (0) ///< Gocator ethernet protocol.
1036 #define GO_ETHERNET_PROTOCOL_MODBUS (1) ///< Modbus ethernet protocol.
1037 #define GO_ETHERNET_PROTOCOL_ETHERNET_IP (2) ///< EthernetIP ethernet protocol.
1038 #define GO_ETHERNET_PROTOCOL_ASCII (3) ///< ASCII ethernet protocol.
1039 /**@}*/
1040 
1041 
1042 /**
1043  * @struct GoEndianType
1044  * @extends kValue
1045  * @ingroup GoSdk-Ethernet
1046  * @brief Represents an endian output type.
1047  *
1048  * The following enumerators are defined:
1049  * - #GO_ENDIAN_TYPE_BIG
1050  * - #GO_ENDIAN_TYPE_LITTLE
1051  */
1052 typedef k32s GoEndianType;
1053 /** @name GoEndianType
1054  *@{*/
1055 #define GO_ENDIAN_TYPE_BIG (0) ///< Big Endian output.
1056 #define GO_ENDIAN_TYPE_LITTLE (1) ///< Little Endian output.
1057 /**@}*/
1058 
1059 
1060 /**
1061  * @struct GoOutputSource
1062  * @extends kValue
1063  * @ingroup GoSdk-Output
1064  * @brief Represents output sources.
1065  *
1066  * The following enumerators are defined:
1067  * - #GO_OUTPUT_SOURCE_NONE
1068  * - #GO_OUTPUT_SOURCE_VIDEO
1069  * - #GO_OUTPUT_SOURCE_RANGE
1070  * - #GO_OUTPUT_SOURCE_PROFILE
1071  * - #GO_OUTPUT_SOURCE_SURFACE
1072  * - #GO_OUTPUT_SOURCE_SECTION
1073  * - #GO_OUTPUT_SOURCE_RANGE_INTENSITY
1074  * - #GO_OUTPUT_SOURCE_PROFILE_INTENSITY
1075  * - #GO_OUTPUT_SOURCE_SURFACE_INTENSITY
1076  * - #GO_OUTPUT_SOURCE_SECTION_INTENSITY
1077  * - #GO_OUTPUT_SOURCE_MEASUREMENT
1078  * - #GO_OUTPUT_SOURCE_TRACHEID
1079  */
1080 typedef k32s GoOutputSource;
1081 /** @name GoOutputSource
1082  *@{*/
1083 #define GO_OUTPUT_SOURCE_NONE (0) ///< Unknown output source.
1084 #define GO_OUTPUT_SOURCE_VIDEO (1) ///< Output video data.
1085 #define GO_OUTPUT_SOURCE_RANGE (2) ///< Output range data.
1086 #define GO_OUTPUT_SOURCE_PROFILE (3) ///< Output profile data.
1087 #define GO_OUTPUT_SOURCE_SURFACE (4) ///< Output surface data.
1088 #define GO_OUTPUT_SOURCE_RANGE_INTENSITY (5) ///< Output range intensity data.
1089 #define GO_OUTPUT_SOURCE_PROFILE_INTENSITY (6) ///< Output profile intensity data.
1090 #define GO_OUTPUT_SOURCE_SURFACE_INTENSITY (7) ///< Output surface intensity data.
1091 #define GO_OUTPUT_SOURCE_MEASUREMENT (8) ///< Output measurement data.
1092 #define GO_OUTPUT_SOURCE_SECTION (9) ///< Output section data.
1093 #define GO_OUTPUT_SOURCE_SECTION_INTENSITY (10) ///< Output section intensity data.
1094 #define GO_OUTPUT_SOURCE_TRACHEID (11) ///< Output tracheid data.
1095 #define GO_OUTPUT_SOURCE_EVENT (12) ///< Output event data.
1096 #define GO_OUTPUT_SOURCE_FEATURE (13) ///< Output feature data.
1097 #define GO_OUTPUT_SOURCE_TOOLDATA (14) ///< Output tool data.
1098  /**@}*/
1099 
1100 /**
1101  * @struct GoDataStep
1102  * @extends kValue
1103  * @ingroup GoSdk-Tools
1104  * @brief Represents possible data streams.
1105  *
1106  * The following enumerators are defined:
1107  * - #GO_DATA_STEP_NONE
1108  * - #GO_DATA_STEP_VIDEO
1109  * - #GO_DATA_STEP_RANGE
1110  * - #GO_DATA_STEP_PROFILE
1111  * - #GO_DATA_STEP_SURFACE
1112  * - #GO_DATA_STEP_SECTION
1113  * - #GO_DATA_STEP_PROFILE_RAW
1114  * - #GO_DATA_STEP_SURFACE_RAW
1115  * - #GO_DATA_STEP_TRACHEID
1116  * - #GO_DATA_STEP_TOOLDATA_OUTPUTS
1117  * - #GO_DATA_STEP_PROFILE_UNMERGED_HDR
1118  * - #GO_DATA_STEP_SURFACE_ORIGINAL
1119  */
1120 typedef k32s GoDataStep;
1121 /** @name GoDataStep
1122  *@{*/
1123 #define GO_DATA_STEP_NONE (-1) ///< Indicates that no specific stream has been specified.
1124 #define GO_DATA_STEP_VIDEO (0) ///< Video data stream.
1125 #define GO_DATA_STEP_RANGE (1) ///< Range data stream.
1126 #define GO_DATA_STEP_PROFILE (2) ///< Profile data stream.
1127 #define GO_DATA_STEP_SURFACE (3) ///< Surface data stream.
1128 #define GO_DATA_STEP_SECTION (4) ///< Section data stream.
1129 #define GO_DATA_STEP_PROFILE_RAW (5) ///< Raw profile data stream.
1130 #define GO_DATA_STEP_SURFACE_RAW (6) ///< Raw surface data stream.
1131 #define GO_DATA_STEP_TRACHEID (7) ///< Tracheid data stream.
1132 #define GO_DATA_STEP_TOOLDATA_OUTPUTS (8) ///< Tool Data Output data stream.
1133 #define GO_DATA_STEP_PROFILE_UNMERGED_HDR (9) ///< Unmerged profile data stream.
1134 #define GO_DATA_STEP_SURFACE_ORIGINAL (11) ///< Original surface data stream.
1135 
1136  /**@}*/
1137 
1138 
1139 /**
1140  * @struct GoDataStream
1141  * @extends kValue
1142  * @ingroup GoSdk-Output
1143  * @brief Represents a data stream which consists of a data step and ID.
1144  */
1145 typedef struct GoDataStream
1146 {
1147  GoDataStep step;
1148  k32s id;
1149 } GoDataStream;
1150 
1151 /**
1152  * @struct GoOutputDelayDomain
1153  * @extends kValue
1154  * @ingroup GoSdk-Output
1155  * @brief Represents an output delay domain.
1156  *
1157  * The following enumerators are defined:
1158  * - #GO_OUTPUT_DELAY_DOMAIN_TIME
1159  * - #GO_OUTPUT_DELAY_DOMAIN_ENCODER
1160  */
1161 typedef k32s GoOutputDelayDomain;
1162 /** @name GoOutputDelayDomain
1163  *@{*/
1164 #define GO_OUTPUT_DELAY_DOMAIN_TIME (0) ///< Time(uS) based delay domain.
1165 #define GO_OUTPUT_DELAY_DOMAIN_ENCODER (1) ///< Encoder tick delay domain.
1166 /**@}*/
1167 
1168 /**
1169  * @struct GoPixelType
1170  * @ingroup GoSdk
1171  * @brief Represents a video message pixel type.
1172  *
1173  * The following enumerators are defined:
1174  * - #GO_PIXEL_TYPE_8U
1175  * - #GO_PIXEL_TYPE_RGB
1176  */
1177 typedef k32s GoPixelType;
1178 /** @name GoPixelType
1179  *@{*/
1180 #define GO_PIXEL_TYPE_UNKNOWN (-1)
1181 #define GO_PIXEL_TYPE_8U (0) ///< Each pixel is represented as unsigned 8-bit values.
1182 #define GO_PIXEL_TYPE_RGB (1) ///< Each pixel is represented as three unsigned 8-bit values.
1183 /**@}*/
1184 
1185 /**
1186  * @struct GoToolType
1187  * @extends kValue
1188  * @ingroup GoSdk-Tools
1189  * @brief Lists all tool types.
1190  *
1191  * The following enumerators are defined:
1192  * - #GO_TOOL_UNKNOWN
1193  * - #GO_TOOL_RANGE_POSITION
1194  * - #GO_TOOL_RANGE_THICKNESS
1195  * - #GO_TOOL_PROFILE_AREA
1196  * - #GO_TOOL_PROFILE_BOUNDING_BOX
1197  * - #GO_TOOL_PROFILE_BRIDGE_VALUE
1198  * - #GO_TOOL_PROFILE_CIRCLE
1199  * - #GO_TOOL_PROFILE_DIMENSION
1200  * - #GO_TOOL_PROFILE_GROOVE
1201  * - #GO_TOOL_PROFILE_INTERSECT
1202  * - #GO_TOOL_PROFILE_LINE
1203  * - #GO_TOOL_PROFILE_PANEL
1204  * - #GO_TOOL_PROFILE_POSITION
1205  * - #GO_TOOL_PROFILE_STRIP
1206  * - #GO_TOOL_PROFILE_X_LINE
1207  * - #GO_TOOL_SURFACE_BOUNDING_BOX
1208  * - #GO_TOOL_SURFACE_COUNTERSUNK_HOLE
1209  * - #GO_TOOL_SURFACE_ELLIPSE
1210  * - #GO_TOOL_SURFACE_HOLE
1211  * - #GO_TOOL_SURFACE_OPENING
1212  * - #GO_TOOL_SURFACE_PLANE
1213  * - #GO_TOOL_SURFACE_POSITION
1214  * - #GO_TOOL_SURFACE_STUD
1215  * - #GO_TOOL_SURFACE_VOLUME
1216  * - #GO_TOOL_SCRIPT
1217  */
1218 typedef k32s GoToolType;
1219 /** @name GoToolType
1220  *@{*/
1221 #define GO_TOOL_UNKNOWN (-1) ///< Unknown tool.
1222 #define GO_TOOL_RANGE_POSITION (0) ///< Range Position tool.
1223 #define GO_TOOL_RANGE_THICKNESS (1) ///< Range Thickness tool.
1224 #define GO_TOOL_PROFILE_AREA (2) ///< Profile Area tool.
1225 #define GO_TOOL_PROFILE_BOUNDING_BOX (21) ///< Profile Bounding Box tool.
1226 #define GO_TOOL_PROFILE_BRIDGE_VALUE (24) ///< Profile Bridge Value tool.
1227 #define GO_TOOL_PROFILE_CIRCLE (3) ///< Profile Circle tool.
1228 #define GO_TOOL_PROFILE_DIMENSION (4) ///< Profile Dimension tool.
1229 #define GO_TOOL_PROFILE_GROOVE (5) ///< Profile Groove tool.
1230 #define GO_TOOL_PROFILE_INTERSECT (6) ///< Profile Intersect tool.
1231 #define GO_TOOL_PROFILE_LINE (7) ///< Profile Line tool.
1232 #define GO_TOOL_PROFILE_PANEL (8) ///< Profile Panel tool.
1233 #define GO_TOOL_PROFILE_POSITION (9) ///< Profile Position tool.
1234 #define GO_TOOL_PROFILE_STRIP (10) ///< Profile Strip tool.
1235 #define GO_TOOL_PROFILE_X_LINE (23) ///< Profile X-Line tool.
1236 #define GO_TOOL_SURFACE_BOUNDING_BOX (11) ///< Surface Bounding Box tool.
1237 #define GO_TOOL_SURFACE_COUNTERSUNK_HOLE (20) ///< Surface Countersunk Hole tool.
1238 #define GO_TOOL_SURFACE_DIMENSION (25) ///< Surface Dimension tool.
1239 #define GO_TOOL_SURFACE_ELLIPSE (12) ///< Surface Ellipse tool.
1240 #define GO_TOOL_SURFACE_HOLE (13) ///< Surface Hole tool.
1241 #define GO_TOOL_SURFACE_OPENING (14) ///< Surface Opening tool.
1242 #define GO_TOOL_SURFACE_PLANE (15) ///< Surface Plane tool.
1243 #define GO_TOOL_SURFACE_POSITION (16) ///< Surface Position tool.
1244 #define GO_TOOL_SURFACE_RIVET (22) ///< Surface Rivet tool.
1245 #define GO_TOOL_SURFACE_STUD (17) ///< Surface Stud tool.
1246 #define GO_TOOL_SURFACE_VOLUME (18) ///< Surface Volume tool.
1247 #define GO_TOOL_SCRIPT (19) ///< Script tool.
1248 #define GO_TOOL_PROFILE_ROUND_CORNER (26) ///< Profile Round Corner tool.
1249 
1250 #define GO_TOOL_EXTENSIBLE (1000)
1251 #define GO_TOOL_TOOL (1001)
1252 /**@}*/
1253 
1254 /**
1255 * @struct GoDataType
1256 * @extends kValue
1257 * @ingroup GoSdk-Tools
1258 * @brief Represents data source selections. Used as a bitmask.
1259 */
1260 typedef k32s GoDataType;
1261 /** @name GoDataType
1262 *@{*/
1263 #define GO_DATA_TYPE_NONE (0x1) ///< None.
1264 #define GO_DATA_TYPE_RANGE (0x2) ///< Range data.
1265 #define GO_DATA_TYPE_UNIFORM_PROFILE (0x4) ///< Uniformly-spaced (resampled) profile data.
1266 #define GO_DATA_TYPE_PROFILE_POINT_CLOUD (0x8) ///< Unresampled profile data.
1267 #define GO_DATA_TYPE_UNIFORM_SURFACE (0x10) ///< Uniformly-spaced height map.
1268 #define GO_DATA_TYPE_SURFACE_POINT_CLOUD (0x20) ///< Unresampled point cloud.
1269 #define GO_DATA_TYPE_UNMERGED_PROFILE_POINT_CLOUD (0x40) ///< Unmerged raw profile data. Reserved for future use.
1270 #define GO_DATA_TYPE_VIDEO (0x80) ///< Video data.
1271 #define GO_DATA_TYPE_TRACHEID (0x100) ///< Tracheid data. Reserved for internal use.
1272 #define GO_DATA_TYPE_FEATURES_ONLY (0x10000000) ///< Geometric features only. No scan data.
1273 
1274 #define GO_DATA_TYPE_RAW_PROFILE (GO_DATA_TYPE_PROFILE_POINT_CLOUD) ///< Unresampled profile data. (Deprecated)
1275 #define GO_DATA_TYPE_RAW_SURFACE (GO_DATA_TYPE_SURFACE_POINT_CLOUD) ///< Unresampled point cloud. (Deprecated)
1276 #define GO_DATA_TYPE_UNMERGED_RAW_PROFILE (GO_DATA_TYPE_UNMERGED_PROFILE_POINT_CLOUD) ///< Unmerged raw profile data. (Deprecated)
1277 /**@}*/
1278 
1279 /**
1280 * @struct GoFeatureDataType
1281 * @extends kValue
1282 * @ingroup GoSdk-Tools
1283 * @brief Lists all feature data types.
1284 *
1285 * The following enumerators are defined:
1286 * - #GO_FEATURE_DATA_UNKNOWN
1287 * - #GO_FEATURE_DATA_POINT
1288 * - #GO_FEATURE_DATA_LINE
1289 * - #GO_FEATURE_DATA_CIRCLE
1290 * - #GO_FEATURE_DATA_PLANE
1291 */
1292 typedef k32s GoFeatureDataType;
1293 /** @name GoFeatureDataType
1294 *@{*/
1295 #define GO_FEATURE_DATA_UNKNOWN (-1) ///< Unknown feature.
1296 #define GO_FEATURE_DATA_POINT (0) ///< Point feature.
1297 #define GO_FEATURE_DATA_LINE (1) ///< Linear feature.
1298 #define GO_FEATURE_DATA_CIRCLE (2) ///< Circular feature.
1299 #define GO_FEATURE_DATA_PLANE (3) ///< Planar feature.
1300 /**@}*/
1301 
1302 /**
1303 * @struct GoFeatureType
1304 * @extends kValue
1305 * @ingroup GoSdk-Tools
1306 * @brief Lists all feature types.
1307 *
1308 * The following enumerators are defined:
1309 * - #GO_FEATURE_UNKNOWN
1310 * - #GO_FEATURE_EXTENSIBLE
1311 */
1312 typedef k32s GoFeatureType;
1313 /** @name GoFeatureType
1314 *@{*/
1315 #define GO_FEATURE_UNKNOWN (-1) ///< Unknown feature.
1316 #define GO_FEATURE_EXTENSIBLE (0) ///< Extensible feature.
1317 /**@}*/
1318 
1319 
1320 /**
1321  * @struct GoMeasurementType
1322  * @extends kValue
1323  * @ingroup GoSdk-Tools
1324  * @brief Lists all measurement types.
1325  *
1326  * The following enumerators are defined:
1327  * - #GO_MEASUREMENT_UNKNOWN
1328  * - #GO_MEASUREMENT_RANGE_POSITION_Z
1329  * - #GO_MEASUREMENT_RANGE_THICKNESS_THICKNESS
1330  * - #GO_MEASUREMENT_PROFILE_AREA_AREA
1331  * - #GO_MEASUREMENT_PROFILE_AREA_CENTROID_X
1332  * - #GO_MEASUREMENT_PROFILE_AREA_CENTROID_Z
1333  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_X
1334  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_Z
1335  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_HEIGHT
1336  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_WIDTH
1337  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_X
1338  * - #GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_ANGLE
1339  * - #GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_BRIDGE_VALUE
1340  * - #GO_MEASUREMENT_PROFILE_CIRCLE_X
1341  * - #GO_MEASUREMENT_PROFILE_CIRCLE_Z
1342  * - #GO_MEASUREMENT_PROFILE_CIRCLE_RADIUS
1343  * - #GO_MEASUREMENT_PROFILE_DIMENSION_WIDTH
1344  * - #GO_MEASUREMENT_PROFILE_DIMENSION_HEIGHT
1345  * - #GO_MEASUREMENT_PROFILE_DIMENSION_DISTANCE
1346  * - #GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_X
1347  * - #GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_Z
1348  * - #GO_MEASUREMENT_PROFILE_GROOVE_X
1349  * - #GO_MEASUREMENT_PROFILE_GROOVE_Z
1350  * - #GO_MEASUREMENT_PROFILE_GROOVE_WIDTH
1351  * - #GO_MEASUREMENT_PROFILE_GROOVE_DEPTH
1352  * - #GO_MEASUREMENT_PROFILE_INTERSECT_X
1353  * - #GO_MEASUREMENT_PROFILE_INTERSECT_Z
1354  * - #GO_MEASUREMENT_PROFILE_INTERSECT_ANGLE
1355  * - #GO_MEASUREMENT_PROFILE_LINE_STDDEV
1356  * - #GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN
1357  * - #GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX
1358  * - #GO_MEASUREMENT_PROFILE_LINE_PERCENTILE
1359  * - #GO_MEASUREMENT_PROFILE_PANEL_GAP
1360  * - #GO_MEASUREMENT_PROFILE_PANEL_FLUSH
1361  * - #GO_MEASUREMENT_PROFILE_PANEL_LEFT_GAP_X
1362  * - #GO_MEASUREMENT_PROFILE_PANEL_LEFT_GAP_Z
1363  * - #GO_MEASUREMENT_PROFILE_PANEL_LEFT_FLUSH_X
1364  * - #GO_MEASUREMENT_PROFILE_PANEL_LEFT_FLUSH_Z
1365  * - #GO_MEASUREMENT_PROFILE_PANEL_LEFT_SURFACE_ANGLE
1366  * - #GO_MEASUREMENT_PROFILE_PANEL_RIGHT_GAP_X
1367  * - #GO_MEASUREMENT_PROFILE_PANEL_RIGHT_GAP_Z
1368  * - #GO_MEASUREMENT_PROFILE_PANEL_RIGHT_FLUSH_X
1369  * - #GO_MEASUREMENT_PROFILE_PANEL_RIGHT_FLUSH_Z
1370  * - #GO_MEASUREMENT_PROFILE_PANEL_RIGHT_SURFACE_ANGLE
1371  * - #GO_MEASUREMENT_PROFILE_POSITION_X
1372  * - #GO_MEASUREMENT_PROFILE_POSITION_Z
1373  * - #GO_MEASUREMENT_PROFILE_STRIP_POSITION_X
1374  * - #GO_MEASUREMENT_PROFILE_STRIP_POSITION_Z
1375  * - #GO_MEASUREMENT_PROFILE_STRIP_WIDTH
1376  * - #GO_MEASUREMENT_PROFILE_STRIP_HEIGHT
1377  * - #GO_MEASUREMENT_PROFILE_X_LINE_Z
1378  * - #GO_MEASUREMENT_PROFILE_X_LINE_VALIDITY
1379  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_X
1380  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Y
1381  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Z
1382  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_ZANGLE
1383  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_HEIGHT
1384  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_WIDTH
1385  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_LENGTH
1386  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_X
1387  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Y
1388  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Z_ANGLE
1389  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X
1390  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y
1391  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Z
1392  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_OUTER_RADIUS
1393  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_DEPTH
1394  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_RADIUS
1395  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_ANGLE
1396  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X_ANGLE
1397  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y_ANGLE
1398  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_COUNTERBORE_DEPTH
1399  * - #GO_MEASUREMENT_SURFACE_DIMENSION_WIDTH
1400  * - #GO_MEASUREMENT_SURFACE_DIMENSION_HEIGHT
1401  * - #GO_MEASUREMENT_SURFACE_DIMENSION_LENGTH
1402  * - #GO_MEASUREMENT_SURFACE_DIMENSION_DISTANCE
1403  * - #GO_MEASUREMENT_SURFACE_DIMENSION_PLANE_DISTANCE
1404  * - #GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_X
1405  * - #GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Y
1406  * - #GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Z
1407  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_MAJOR
1408  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_MINOR
1409  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_RATIO
1410  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_ZANGLE
1411  * - #GO_MEASUREMENT_SURFACE_HOLE_X
1412  * - #GO_MEASUREMENT_SURFACE_HOLE_Y
1413  * - #GO_MEASUREMENT_SURFACE_HOLE_Z
1414  * - #GO_MEASUREMENT_SURFACE_HOLE_RADIUS
1415  * - #GO_MEASUREMENT_SURFACE_OPENING_X
1416  * - #GO_MEASUREMENT_SURFACE_OPENING_Y
1417  * - #GO_MEASUREMENT_SURFACE_OPENING_Z
1418  * - #GO_MEASUREMENT_SURFACE_OPENING_WIDTH
1419  * - #GO_MEASUREMENT_SURFACE_OPENING_LENGTH
1420  * - #GO_MEASUREMENT_SURFACE_OPENING_ANGLE
1421  * - #GO_MEASUREMENT_SURFACE_PLANE_X_ANGLE
1422  * - #GO_MEASUREMENT_SURFACE_PLANE_Y_ANGLE
1423  * - #GO_MEASUREMENT_SURFACE_PLANE_Z_OFFSET
1424  * - #GO_MEASUREMENT_SURFACE_PLANE_STD_DEV
1425  * - #GO_MEASUREMENT_SURFACE_PLANE_ERROR_MIN
1426  * - #GO_MEASUREMENT_SURFACE_PLANE_ERROR_MAX
1427  * - #GO_MEASUREMENT_SURFACE_PLANE_X_NORMAL
1428  * - #GO_MEASUREMENT_SURFACE_PLANE_Y_NORMAL
1429  * - #GO_MEASUREMENT_SURFACE_PLANE_Z_NORMAL
1430  * - #GO_MEASUREMENT_SURFACE_PLANE_DISTANCE
1431  * - #GO_MEASUREMENT_SURFACE_POSITION_X
1432  * - #GO_MEASUREMENT_SURFACE_POSITION_Y
1433  * - #GO_MEASUREMENT_SURFACE_POSITION_Z
1434  * - #GO_MEASUREMENT_SURFACE_RIVET_X
1435  * - #GO_MEASUREMENT_SURFACE_RIVET_Y
1436  * - #GO_MEASUREMENT_SURFACE_RIVET_Z
1437  * - #GO_MEASUREMENT_SURFACE_RIVET_TILT_ANGLE
1438  * - #GO_MEASUREMENT_SURFACE_RIVET_TILT_DIRECTION
1439  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIUS
1440  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MIN
1441  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MAX
1442  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MEAN
1443  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_STD_DEV
1444  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MIN
1445  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MAX
1446  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MEAN
1447  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_STD_DEV
1448  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MIN
1449  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MAX
1450  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MEAN
1451  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_STD_DEV
1452  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_X
1453  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_Y
1454  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_Z
1455  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_X
1456  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_Y
1457  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_Z
1458  * - #GO_MEASUREMENT_SURFACE_STUD_RADIUS
1459  * - #GO_MEASUREMENT_SURFACE_VOLUME_AREA
1460  * - #GO_MEASUREMENT_SURFACE_VOLUME_VOLUME
1461  * - #GO_MEASUREMENT_SURFACE_VOLUME_THICKNESS
1462  * - #GO_MEASUREMENT_SCRIPT_OUTPUT
1463  */
1464 typedef k32s GoMeasurementType;
1465 /** @name GoMeasurementType
1466  *@{*/
1467 #define GO_MEASUREMENT_UNKNOWN (-1) ///< Unknown measurement.
1468 #define GO_MEASUREMENT_RANGE_POSITION_Z (0) ///< Range Position tool Z measurement.
1469 #define GO_MEASUREMENT_RANGE_THICKNESS_THICKNESS (1) ///< Range Thickness tool Thickness measurement.
1470 #define GO_MEASUREMENT_PROFILE_AREA_AREA (2) ///< Profile Area tool Area measurement.
1471 #define GO_MEASUREMENT_PROFILE_AREA_CENTROID_X (3) ///< Profile Area tool Centroid X measurement.
1472 #define GO_MEASUREMENT_PROFILE_AREA_CENTROID_Z (4) ///< Profile Area tool Centroid Z measurement.
1473 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_X (82) ///< Profile Bounding Box X measurement.
1474 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_Z (83) ///< Profile Bounding Box Z measurement.
1475 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_HEIGHT (84) ///< Profile Bounding Box Height measurement.
1476 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_WIDTH (85) ///< Profile Bounding Box Width measurement.
1477 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_X (86) ///< Profile Bounding Box Global X measurement.
1478 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_Y (112) ///< Profile Bounding Box Global Y measurement.
1479 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_ANGLE (113) ///< Profile Bounding Box Global Angle measurement.
1480 #define GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_BRIDGE_VALUE (106) ///< Profile Bridge Value measurement.
1481 #define GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_ANGLE (107) ///< Profile Bridge Value measurement.
1482 #define GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_WINDOW (146) ///< Profile Bridge Value measurement.
1483 #define GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_STDDEV (147) ///< Profile Bridge Value measurement.
1484 #define GO_MEASUREMENT_PROFILE_CIRCLE_X (5) ///< Profile Circle tool X measurement.
1485 #define GO_MEASUREMENT_PROFILE_CIRCLE_Z (6) ///< Profile Circle tool Z measurement.
1486 #define GO_MEASUREMENT_PROFILE_CIRCLE_RADIUS (7) ///< Profile Circle tool Radius measurement.
1487 #define GO_MEASUREMENT_PROFILE_DIMENSION_WIDTH (8) ///< Profile Dimension tool Width measurement.
1488 #define GO_MEASUREMENT_PROFILE_DIMENSION_HEIGHT (9) ///< Profile Dimension tool Height measurement.
1489 #define GO_MEASUREMENT_PROFILE_DIMENSION_DISTANCE (10) ///< Profile Dimension tool Distance measurement.
1490 #define GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_X (11) ///< Profile Dimension tool Center X measurement.
1491 #define GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_Z (12) ///< Profile Dimension tool Center Z measurement.
1492 #define GO_MEASUREMENT_PROFILE_GROOVE_X (13) ///< Profile Groove tool X measurement.
1493 #define GO_MEASUREMENT_PROFILE_GROOVE_Z (14) ///< Profile Groove tool Z measurement.
1494 #define GO_MEASUREMENT_PROFILE_GROOVE_WIDTH (15) ///< Profile Groove tool Width measurement.
1495 #define GO_MEASUREMENT_PROFILE_GROOVE_DEPTH (16) ///< Profile Groove tool Depth measurement.
1496 #define GO_MEASUREMENT_PROFILE_INTERSECT_X (17) ///< Profile Intersect tool X measurement.
1497 #define GO_MEASUREMENT_PROFILE_INTERSECT_Z (18) ///< Profile Intersect tool Z measurement.
1498 #define GO_MEASUREMENT_PROFILE_INTERSECT_ANGLE (19) ///< Profile Intersect tool Angle measurement.
1499 #define GO_MEASUREMENT_PROFILE_LINE_STDDEV (20) ///< Profile Line tool Standard Deviation measurement.
1500 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN (21) ///< Profile Line tool Minimum Error measurement.
1501 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX (22) ///< Profile Line tool Maximum Error measurement.
1502 #define GO_MEASUREMENT_PROFILE_LINE_PERCENTILE (23) ///< Profile Line tool Percentile measurement.
1503 #define GO_MEASUREMENT_PROFILE_LINE_OFFSET (130) ///< Profile Line tool Offset measurement.
1504 #define GO_MEASUREMENT_PROFILE_LINE_ANGLE (131) ///< Profile Line tool Angle measurement.
1505 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN_X (132) ///< Profile Line tool Minimum X Error measurement.
1506 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN_Z (133) ///< Profile Line tool Minimum Z Error measurement.
1507 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX_X (134) ///< Profile Line tool Maximum X Error measurement.
1508 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX_Z (135) ///< Profile Line tool Maximum Z Error measurement.
1509 #define GO_MEASUREMENT_PROFILE_PANEL_GAP (24) ///< Profile Panel tool Gap measurement.
1510 #define GO_MEASUREMENT_PROFILE_PANEL_FLUSH (25) ///< Profile Panel tool Flush measurement.
1511 #define GO_MEASUREMENT_PROFILE_PANEL_LEFT_GAP_X (136) ///< Profile Panel tool Left Gap X measurement.
1512 #define GO_MEASUREMENT_PROFILE_PANEL_LEFT_GAP_Z (137) ///< Profile Panel tool Left Gap Z measurement.
1513 #define GO_MEASUREMENT_PROFILE_PANEL_LEFT_FLUSH_X (138) ///< Profile Panel tool Left Flush X measurement.
1514 #define GO_MEASUREMENT_PROFILE_PANEL_LEFT_FLUSH_Z (139) ///< Profile Panel tool Left Flush Z measurement.
1515 #define GO_MEASUREMENT_PROFILE_PANEL_LEFT_SURFACE_ANGLE (140) ///< Profile Panel tool Left Surface Angle measurement.
1516 #define GO_MEASUREMENT_PROFILE_PANEL_RIGHT_GAP_X (141) ///< Profile Panel tool Right Gap X measurement.
1517 #define GO_MEASUREMENT_PROFILE_PANEL_RIGHT_GAP_Z (142) ///< Profile Panel tool Right Gap Z measurement.
1518 #define GO_MEASUREMENT_PROFILE_PANEL_RIGHT_FLUSH_X (143) ///< Profile Panel tool Right Flush X measurement.
1519 #define GO_MEASUREMENT_PROFILE_PANEL_RIGHT_FLUSH_Z (144) ///< Profile Panel tool Right Flush Z measurement.
1520 #define GO_MEASUREMENT_PROFILE_PANEL_RIGHT_SURFACE_ANGLE (145) ///< Profile Panel tool Right Surface Angle measurement.
1521 #define GO_MEASUREMENT_PROFILE_POSITION_X (26) ///< Profile Position tool X measurement.
1522 #define GO_MEASUREMENT_PROFILE_POSITION_Z (27) ///< Profile Position tool Z measurement.
1523 #define GO_MEASUREMENT_PROFILE_STRIP_POSITION_X (28) ///< Profile Strip tool X Position measurement.
1524 #define GO_MEASUREMENT_PROFILE_STRIP_POSITION_Z (29) ///< Profile Strip tool Z Position measurement.
1525 #define GO_MEASUREMENT_PROFILE_STRIP_WIDTH (30) ///< Profile Strip tool Width measurement.
1526 #define GO_MEASUREMENT_PROFILE_STRIP_HEIGHT (31) ///< Profile Strip tool Height measurement.
1527 #define GO_MEASUREMENT_PROFILE_X_LINE_Z (87) ///< Profile X-Line tool Z measurement.
1528 #define GO_MEASUREMENT_PROFILE_X_LINE_VALIDITY (88) ///< Profile X-Line tool Validity measurement.
1529 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_X (32) ///< Surface Bounding Box X measurement.
1530 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Y (33) ///< Surface Bounding Box Y measurement.
1531 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Z (34) ///< Surface Bounding Box Z measurement.
1532 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_ZANGLE (35) ///< Surface Bounding Box Z Angle measurement.
1533 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_HEIGHT (36) ///< Surface Bounding Box Height measurement.
1534 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_WIDTH (37) ///< Surface Bounding Box Width measurement.
1535 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_LENGTH (38) ///< Surface Bounding Box Length measurement.
1536 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_X (39) ///< Surface Bounding Box Global X measurement.
1537 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Y (40) ///< Surface Bounding Box Global Y measurement.
1538 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Z_ANGLE (41) ///< Surface Bounding Box Global Z Angle measurement.
1539 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X (42) ///< Surface Countersunk Hole tool X position measurement.
1540 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y (43) ///< Surface Countersunk Hole tool Y position measurement.
1541 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Z (44) ///< Surface Countersunk Hole tool Z position measurement.
1542 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_OUTER_RADIUS (45) ///< Surface Countersunk Hole tool Outer Radius measurement.
1543 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_DEPTH (46) ///< Surface Countersunk Hole tool Depth measurement.
1544 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_COUNTERBORE_DEPTH (108) ///< Surface Countersunk Hole tool Counterbore Depth measurement.
1545 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_RADIUS (47) ///< Surface Countersunk Hole tool Bevel Radius measurement.
1546 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_ANGLE (48) ///< Surface Countersunk Hole tool Bevel Angle measurement.
1547 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X_ANGLE (49) ///< Surface Countersunk Hole tool X Angle measurement.
1548 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y_ANGLE (50) ///< Surface Countersunk Hole tool Y Angle measurement.
1549 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_AXIS_TILT (122) ///< Surface Countersunk Hole tool axis tilt measurement.
1550 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_AXIS_ORIENTATION (123) ///< Surface Countersunk Hole tool axis orientation measurement.
1551 #define GO_MEASUREMENT_SURFACE_DIMENSION_WIDTH (114) ///< Surface Dimension tool Width measurement.
1552 #define GO_MEASUREMENT_SURFACE_DIMENSION_HEIGHT (115) ///< Surface Dimension tool Height measurement.
1553 #define GO_MEASUREMENT_SURFACE_DIMENSION_LENGTH (116) ///< Surface Dimension tool Length measurement.
1554 #define GO_MEASUREMENT_SURFACE_DIMENSION_DISTANCE (117) ///< Surface Dimension tool Distance measurement.
1555 #define GO_MEASUREMENT_SURFACE_DIMENSION_PLANE_DISTANCE (118) ///< Surface Dimension tool Plane Distance measurement.
1556 #define GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_X (119) ///< Surface Dimension tool Center X measurement.
1557 #define GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Y (120) ///< Surface Dimension tool Center Y measurement.
1558 #define GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Z (121) ///< Surface Dimension tool Center Z measurement.
1559 #define GO_MEASUREMENT_SURFACE_ELLIPSE_MAJOR (51) ///< Surface Ellipse tool Major measurement.
1560 #define GO_MEASUREMENT_SURFACE_ELLIPSE_MINOR (52) ///< Surface Ellipse tool Minor measurement.
1561 #define GO_MEASUREMENT_SURFACE_ELLIPSE_RATIO (53) ///< Surface Ellipse tool Ratio measurement.
1562 #define GO_MEASUREMENT_SURFACE_ELLIPSE_ZANGLE (54) ///< Surface Ellipse tool Z Angle measurement.
1563 #define GO_MEASUREMENT_SURFACE_HOLE_X (55) ///< Surface Hole tool X measurement.
1564 #define GO_MEASUREMENT_SURFACE_HOLE_Y (56) ///< Surface Hole tool Y measurement.
1565 #define GO_MEASUREMENT_SURFACE_HOLE_Z (57) ///< Surface Hole tool Z measurement.
1566 #define GO_MEASUREMENT_SURFACE_HOLE_RADIUS (58) ///< Surface Hole tool Radius measurement.
1567 #define GO_MEASUREMENT_SURFACE_OPENING_X (59) ///< Surface Opening tool X measurement.
1568 #define GO_MEASUREMENT_SURFACE_OPENING_Y (60) ///< Surface Opening tool Y measurement.
1569 #define GO_MEASUREMENT_SURFACE_OPENING_Z (61) ///< Surface Opening tool Z measurement.
1570 #define GO_MEASUREMENT_SURFACE_OPENING_WIDTH (62) ///< Surface Opening tool Width measurement.
1571 #define GO_MEASUREMENT_SURFACE_OPENING_LENGTH (63) ///< Surface Opening tool Length measurement.
1572 #define GO_MEASUREMENT_SURFACE_OPENING_ANGLE (64) ///< Surface Opening tool Angle measurement.
1573 #define GO_MEASUREMENT_SURFACE_PLANE_X_ANGLE (65) ///< Surface Plane tool X Angle measurement.
1574 #define GO_MEASUREMENT_SURFACE_PLANE_Y_ANGLE (66) ///< Surface Plane tool Y Angle measurement.
1575 #define GO_MEASUREMENT_SURFACE_PLANE_Z_OFFSET (67) ///< Surface Plane tool Z Offset measurement.
1576 #define GO_MEASUREMENT_SURFACE_PLANE_STD_DEV (109) ///< Surface Plane tool Standard Deviation measurement.
1577 #define GO_MEASUREMENT_SURFACE_PLANE_ERROR_MIN (110) ///< Surface Plane tool Minimum Error measurement.
1578 #define GO_MEASUREMENT_SURFACE_PLANE_ERROR_MAX (111) ///< Surface Plane tool Maximum Error measurement.
1579 #define GO_MEASUREMENT_SURFACE_PLANE_X_NORMAL (126) ///< Surface Plane tool X Normal measurement.
1580 #define GO_MEASUREMENT_SURFACE_PLANE_Y_NORMAL (127) ///< Surface Plane tool Y Normal measurement.
1581 #define GO_MEASUREMENT_SURFACE_PLANE_Z_NORMAL (128) ///< Surface Plane tool Z Normal measurement.
1582 #define GO_MEASUREMENT_SURFACE_PLANE_DISTANCE (129) ///< Surface Plane tool X Normal measurement.
1583 #define GO_MEASUREMENT_SURFACE_EDGE_X (130) ///< Surface Position edge tool X measurement.
1584 #define GO_MEASUREMENT_SURFACE_EDGE_Y (131) ///< Surface Position edge tool Y measurement.
1585 #define GO_MEASUREMENT_SURFACE_EDGE_Z (132) ///< Surface Position edge tool Z measurement.
1586 #define GO_MEASUREMENT_SURFACE_INTERSECT_X (133) ///< Surface Position intersect tool X measurement.
1587 #define GO_MEASUREMENT_SURFACE_INTERSECT_Y (134) ///< Surface Position intersect tool Y measurement.
1588 #define GO_MEASUREMENT_SURFACE_INTERSECT_Z (135) ///< Surface Position intersect tool Z measurement.
1589 #define GO_MEASUREMENT_SURFACE_INTERSECT_ANGLE (136) ///< Surface Position intersect tool angle.
1590 
1591 #define GO_MEASUREMENT_SURFACE_POSITION_X (68) ///< Surface Position tool X measurement.
1592 #define GO_MEASUREMENT_SURFACE_POSITION_Y (69) ///< Surface Position tool Y measurement.
1593 #define GO_MEASUREMENT_SURFACE_POSITION_Z (70) ///< Surface Position tool Z measurement.
1594 #define GO_MEASUREMENT_SURFACE_RIVET_X (88) ///< Surface Rivet tool X measurement.
1595 #define GO_MEASUREMENT_SURFACE_RIVET_Y (89) ///< Surface Rivet tool Y measurement.
1596 #define GO_MEASUREMENT_SURFACE_RIVET_Z (90) ///< Surface Rivet tool Z measurement.
1597 #define GO_MEASUREMENT_SURFACE_RIVET_TILT_ANGLE (91) ///< Surface Rivet tool X Angle measurement.
1598 #define GO_MEASUREMENT_SURFACE_RIVET_TILT_DIRECTION (92) ///< Surface Rivet tool Y Angle measurement.
1599 #define GO_MEASUREMENT_SURFACE_RIVET_RADIUS (93) ///< Surface Rivet tool Radius measurement.
1600 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MIN (94) ///< Surface Rivet tool Top Offset Minimum measurement.
1601 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MAX (95) ///< Surface Rivet tool Top Offset Maximum measurement.
1602 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MEAN (96) ///< Surface Rivet tool Top Offset Mean measurement.
1603 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_STD_DEV (97) ///< Surface Rivet tool Top Offset Standard Deviation measurement.
1604 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MIN (98) ///< Surface Rivet tool Radial Height Minimum measurement.
1605 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MAX (99) ///< Surface Rivet tool Radial Height Maximum measurement.
1606 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MEAN (100) ///< Surface Rivet tool Radial Height Mean measurement.
1607 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_STD_DEV (101) ///< Surface Rivet tool Radial Height Standard Deviation measurement.
1608 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MIN (102) ///< Surface Rivet tool Radial Slope Minimum measurement.
1609 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MAX (103) ///< Surface Rivet tool Radial Slope Maximum measurement.
1610 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MEAN (104) ///< Surface Rivet tool Radial Slope Mean measurement.
1611 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_STD_DEV (105) ///< Surface Rivet tool Radial Slope Standard Deviation measurement.
1612 #define GO_MEASUREMENT_SURFACE_STUD_BASE_X (71) ///< Surface Stud tool Base X measurement.
1613 #define GO_MEASUREMENT_SURFACE_STUD_BASE_Y (72) ///< Surface Stud tool Base Y measurement.
1614 #define GO_MEASUREMENT_SURFACE_STUD_BASE_Z (73) ///< Surface Stud tool Base Z measurement.
1615 #define GO_MEASUREMENT_SURFACE_STUD_TIP_X (74) ///< Surface Stud tool Tip X measurement.
1616 #define GO_MEASUREMENT_SURFACE_STUD_TIP_Y (75) ///< Surface Stud tool Tip Y measurement.
1617 #define GO_MEASUREMENT_SURFACE_STUD_TIP_Z (76) ///< Surface Stud tool Tip Z measurement.
1618 #define GO_MEASUREMENT_SURFACE_STUD_RADIUS (77) ///< Surface Stud tool Radius measurement.
1619 #define GO_MEASUREMENT_SURFACE_VOLUME_AREA (78) ///< Surface Volume tool Area measurement.
1620 #define GO_MEASUREMENT_SURFACE_VOLUME_VOLUME (79) ///< Surface Volume tool Volume measurement.
1621 #define GO_MEASUREMENT_SURFACE_VOLUME_THICKNESS (80) ///< Surface Volume tool Thickness measurement.
1622 #define GO_MEASUREMENT_SCRIPT_OUTPUT (81) ///< Script tool Output.
1623 #define GO_MEASUREMENT_EXTENSIBLE (87) ///< Extensible tool measurement.
1624 #define GO_MEASUREMENT_PROFILE_ROUND_CORNER_X (123) ///< Profile Round Corner tool X measurement.
1625 #define GO_MEASUREMENT_PROFILE_ROUND_CORNER_Z (124) ///< Profile Round Corner tool Z measurement.
1626 #define GO_MEASUREMENT_PROFILE_ROUND_CORNER_ANGLE (125) ///< Profile Round Corner tool Angle measurement.
1627 
1628 
1629 
1630 #define GO_FEATURE_DIMENSION_WIDTH (140) ///< Dimension tool width Intersect angle.
1631 #define GO_FEATURE_DIMENSION_LENGTH (141) ///< Dimension tool length Intersect angle.
1632 #define GO_FEATURE_DIMENSION_HEIGHT (142) ///< Dimension tool height Intersect angle.
1633 #define GO_FEATURE_DIMENSION_DISTANCE (143) ///< Dimension tool distance Intersect angle.
1634 #define GO_FEATURE_DIMENSION_PLANEDISTANCE (144) ///< Dimension tool plane distance Intersect angle.
1635 #define GO_FEATURE_DIMENSION_CENTERX (145) ///< Dimension tool center x Intersect angle.
1636 #define GO_FEATURE_DIMENSION_CENTERY (146) ///< Dimension tool center y Intersect angle.
1637 #define GO_FEATURE_DIMENSION_CENTERZ (147) ///< Dimension tool center z Intersect angle.
1638 
1639 /**@}*/
1640 
1641 //Tool Features
1642 #define GO_FEATURE_SURFACE_EDGE_EDGE_LINE (1) ///< Surface Edge Edge Line feature.
1643 #define GO_FEATURE_SURFACE_CENTER_POINT (2) ///< Surface Center Point feature.
1644 #define GO_FEATURE_SURFACE_BOUNDING_BOX_CENTER_POINT (3) ///< Surface Bounding Box Center Point feature.
1645 #define GO_FEATURE_SURFACE_COUNTERSUNKHOLE_CENTER_POINT (4) ///< Surface Countersunk Hole Center Point feature.
1646 #define GO_FEATURE_SURFACE_DIMENSION_CENTER_POINT (5) ///< Surface Dimension Center Point feature.
1647 #define GO_FEATURE_SURFACE_ELLIPSE_CENTER_POINT (6) ///< Surface Ellipse Center Point feature.
1648 #define GO_FEATURE_SURFACE_ELLIPSE_MAJOR_AXIS_LINE (7) ///< Surface Ellipse Major Axis feature.
1649 #define GO_FEATURE_SURFACE_ELLIPSE_MINOR_AXIS_LINE (8) ///< Surface Ellipse Minor Axis feature.
1650 #define GO_FEATURE_SURFACE_HOLE_CENTER_POINT (9) ///< Surface Hole Center Point feature.
1651 #define GO_FEATURE_SURFACE_OPENING_CENTER_POINT (10) ///< Surface Opening Center Point feature.
1652 #define GO_FEATURE_SURFACE_PLANE_PLANE (11) ///< Surface Plane Plane feature.
1653 #define GO_FEATURE_SURFACE_POSITION_POINT (12) ///< Surface Position Point feature.
1654 #define GO_FEATURE_SURFACE_STUD_TIP_POINT (13) ///< Surface Stud Tip Point feature.
1655 #define GO_FEATURE_SURFACE_STUD_BASE_POINT (14) ///< Surface Stud Base Point feature.
1656 
1657 #define GO_FEATURE_PROFILE_POSITION_POINT (50) ///< Profile Position Point feature.
1658 #define GO_FEATURE_PROFILE_LINE_LINE (51) ///< Profile Line Line feature.
1659 #define GO_FEATURE_PROFILE_LINE_MIN_ERROR_POINT (52) ///< Profile Line Minimum Error Point feature.
1660 #define GO_FEATURE_PROFILE_LINE_MAX_ERROR_POINT (53) ///< Profile Line Maximum Error Point feature.
1661 #define GO_FEATURE_PROFILE_INTERSECT_INTERSECT_POINT (54) ///< Profile Intersect Intersect Point feature.
1662 #define GO_FEATURE_PROFILE_INTERSECT_LINE (55) ///< Profile Intersect Line feature.
1663 #define GO_FEATURE_PROFILE_INTERSECT_BASE_LINE (56) ///< Profile Intersect Base Line feature.
1664 #define GO_FEATURE_PROFILE_BOUNDING_BOX_CENTER_POINT (57) ///< Profile Bounding Box Center Point feature.
1665 #define GO_FEATURE_PROFILE_BOUNDING_BOX_CORNER_POINT (58) ///< Profile Bounding Box Corner Point feature.
1666 #define GO_FEATURE_PROFILE_AREA_CENTER_POINT (59) ///< Profile Area Center Point feature.
1667 #define GO_FEATURE_PROFILE_CIRCLE_CENTER_POINT (60) ///< Profile Circle Center Point feature.
1668 #define GO_FEATURE_PROFILE_DIMENSION_CENTER_POINT (61) ///< Profile Dimension Center Point feature.
1669 #define GO_FEATURE_PROFILE_PANEL_LEFT_GAP_POINT (62) ///< Profile Panel Left Gap Point feature.
1670 #define GO_FEATURE_PROFILE_PANEL_LEFT_FLUSH_POINT (63) ///< Profile Panel Left Flush Point feature.
1671 #define GO_FEATURE_PROFILE_PANEL_RIGHT_GAP_POINT (64) ///< Profile Panel Right Gap Point feature.
1672 #define GO_FEATURE_PROFILE_PANEL_RIGHT_FLUSH_POINT (65) ///< Profile Panel Right Flush Point feature.
1673 #define GO_FEATURE_PROFILE_ROUND_CORNER_POINT (66) ///< Profile Panel Round Corner Point feature.
1674 #define GO_FEATURE_PROFILE_ROUND_CORNER_EDGE_POINT (67) ///< Profile Panel Round Corner Edge Point feature.
1675 #define GO_FEATURE_PROFILE_ROUND_CORNER_CENTER_POINT (68) ///< Profile Panel Round Corner Center Point feature.
1676 
1677 
1678 #define GO_MEASUREMENT_ID_NONE (-1)
1679 /**
1680  * @struct GoDataMessageType
1681  * @extends kValue
1682  * @ingroup GoSdk-DataChannel
1683  * @brief Lists all data message types.
1684  *
1685  * The following enumerators are defined:
1686  * - #GO_DATA_MESSAGE_TYPE_UNKNOWN
1687  * - #GO_DATA_MESSAGE_TYPE_STAMP
1688  * - #GO_DATA_MESSAGE_TYPE_HEALTH
1689  * - #GO_DATA_MESSAGE_TYPE_VIDEO
1690  * - #GO_DATA_MESSAGE_TYPE_RANGE
1691  * - #GO_DATA_MESSAGE_TYPE_RANGE_INTENSITY
1692  * - #GO_DATA_MESSAGE_TYPE_PROFILE_POINT_CLOUD
1693  * - #GO_DATA_MESSAGE_TYPE_PROFILE_INTENSITY
1694  * - #GO_DATA_MESSAGE_TYPE_UNIFORM_PROFILE
1695  * - #GO_DATA_MESSAGE_TYPE_UNIFORM_SURFACE
1696  * - #GO_DATA_MESSAGE_TYPE_SURFACE_INTENSITY
1697  * - #GO_DATA_MESSAGE_TYPE_MEASUREMENT
1698  * - #GO_DATA_MESSAGE_TYPE_ALIGNMENT
1699  * - #GO_DATA_MESSAGE_TYPE_EXPOSURE_CAL
1700  * - #GO_DATA_MESSAGE_TYPE_EDGE_MATCH
1701  * - #GO_DATA_MESSAGE_TYPE_BOUNDING_BOX_MATCH
1702  * - #GO_DATA_MESSAGE_TYPE_ELLIPSE_MATCH
1703  * - #GO_DATA_MESSAGE_TYPE_SECTION
1704  * - #GO_DATA_MESSAGE_TYPE_SECTION_INTENSITY
1705  * - #GO_DATA_MESSAGE_TYPE_EVENT
1706  * - #GO_DATA_MESSAGE_TYPE_TRACHEID
1707  * - #GO_DATA_MESSAGE_TYPE_FEATURE_POINT
1708  * - #GO_DATA_MESSAGE_TYPE_FEATURE_LINE
1709  * - #GO_DATA_MESSAGE_TYPE_FEATURE_PLANE
1710  * - #GO_DATA_MESSAGE_TYPE_FEATURE_CIRCLE
1711  * - #GO_DATA_MESSAGE_TYPE_SURFACE_POINT_CLOUD
1712  * - #GO_DATA_MESSAGE_TYPE_PROFILE //Deprecated use GO_DATA_MESSAGE_TYPE_PROFILE_POINT_CLOUD instead
1713  * - #GO_DATA_MESSAGE_TYPE_RESAMPLED_PROFILE //Deprecated use GO_DATA_MESSAGE_TYPE_UNIFORM_PROFILE instead
1714  * - #GO_DATA_MESSAGE_TYPE_SURFACE //Deprecated use GO_DATA_MESSAGE_TYPE_UNIFORM_SURFACE
1715  */
1716 /* These definitions are similar to the GO_COMPACT_MESSAGE_XXX but are not
1717  * guaranteed to be the same.
1718  *
1719  * This set of GO_DATA_MESSAGE_TYPE_xxx definitions are external (customer)
1720  * facing and must NEVER be renumbered. Some SDK applications hardcode these values.
1721  *
1722  */
1723 typedef k32s GoDataMessageType;
1724 /** @name GoDataMessageType
1725  *@{*/
1726 #define GO_DATA_MESSAGE_TYPE_UNKNOWN -1 ///< Unknown message type.
1727 #define GO_DATA_MESSAGE_TYPE_STAMP 0 ///< Stamp message type.
1728 #define GO_DATA_MESSAGE_TYPE_HEALTH 1 ///< Health message type.
1729 #define GO_DATA_MESSAGE_TYPE_VIDEO 2 ///< Video message type.
1730 #define GO_DATA_MESSAGE_TYPE_RANGE 3 ///< Range message type.
1731 #define GO_DATA_MESSAGE_TYPE_RANGE_INTENSITY 4 ///< Range Intensity message type.
1732 #define GO_DATA_MESSAGE_TYPE_PROFILE_POINT_CLOUD 5 ///< Unresampled Profile message type.
1733 #define GO_DATA_MESSAGE_TYPE_PROFILE_INTENSITY 6 ///< Profile Point Cloud (or Uniform Profile) Intensity message type.
1734 #define GO_DATA_MESSAGE_TYPE_UNIFORM_PROFILE 7 ///< Uniform Profile message type.
1735 #define GO_DATA_MESSAGE_TYPE_UNIFORM_SURFACE 8 ///< Uniform Surface message type.
1736 #define GO_DATA_MESSAGE_TYPE_SURFACE_INTENSITY 9 ///< Surface Point Cloud (or Uniform Surface) Intensity message type.
1737 #define GO_DATA_MESSAGE_TYPE_MEASUREMENT 10 ///< Measurement message type.
1738 #define GO_DATA_MESSAGE_TYPE_ALIGNMENT 11 ///< Alignment result message type.
1739 #define GO_DATA_MESSAGE_TYPE_EXPOSURE_CAL 12 ///< Exposure AutoSet/Calibration result message type.
1740 #define GO_DATA_MESSAGE_TYPE_EDGE_MATCH 16 ///< Part matching edge algorithm message type.
1741 #define GO_DATA_MESSAGE_TYPE_BOUNDING_BOX_MATCH 17 ///< Part matching bounding box algorithm message type.
1742 #define GO_DATA_MESSAGE_TYPE_ELLIPSE_MATCH 18 ///< Part matching ellipse algorithm message type.
1743 #define GO_DATA_MESSAGE_TYPE_SECTION 20 ///< Section message type.
1744 #define GO_DATA_MESSAGE_TYPE_SECTION_INTENSITY 21 ///< Section Intensity message type.
1745 #define GO_DATA_MESSAGE_TYPE_EVENT 22 ///< Event message type.
1746 #define GO_DATA_MESSAGE_TYPE_TRACHEID 23 ///< Tracheid message type.
1747 #define GO_DATA_MESSAGE_TYPE_FEATURE_POINT 24 ///< Point Feature message type.
1748 #define GO_DATA_MESSAGE_TYPE_FEATURE_LINE 25 ///< Line Feature message type.
1749 #define GO_DATA_MESSAGE_TYPE_FEATURE_PLANE 26 ///< Plane Feature message type.
1750 #define GO_DATA_MESSAGE_TYPE_FEATURE_CIRCLE 27 ///< Circle Feature message type.
1751 #define GO_DATA_MESSAGE_TYPE_SURFACE_POINT_CLOUD 28 ///< Surface Point Cloud (Un-Resampled surface) message type.
1752 
1753 #define GO_DATA_MESSAGE_TYPE_PROFILE GO_DATA_MESSAGE_TYPE_PROFILE_POINT_CLOUD ///< Deprecated Unresampled Profile message type.
1754 #define GO_DATA_MESSAGE_TYPE_RESAMPLED_PROFILE GO_DATA_MESSAGE_TYPE_UNIFORM_PROFILE ///< Deprecated Uniform Profile message type.
1755 #define GO_DATA_MESSAGE_TYPE_SURFACE GO_DATA_MESSAGE_TYPE_UNIFORM_SURFACE ///< Deprecated Surface message type.
1756 /**@}*/
1757 
1758 /**
1759 * @struct GoReplayConditionType
1760 * @extends kValue
1761 * @ingroup GoSdk-Replay
1762 * @brief Represents a replay condition type.
1763 *
1764 * The following enumerators are defined:
1765 * - #GO_REPLAY_CONDITION_TYPE_ANY_MEASUREMENT
1766 * - #GO_REPLAY_CONDITION_TYPE_ANY_DATA
1767 * - #GO_REPLAY_CONDITION_TYPE_MEASUREMENT
1768 */
1769 typedef k32s GoReplayConditionType;
1770 /** @name GoReplayConditionType
1771 *@{*/
1772 #define GO_REPLAY_CONDITION_TYPE_ANY_MEASUREMENT (0) ///< Any Measurement condition.
1773 #define GO_REPLAY_CONDITION_TYPE_ANY_DATA (1) ///< Any Data condition.
1774 #define GO_REPLAY_CONDITION_TYPE_MEASUREMENT (2) ///< Measurement condition.
1775 
1776 /**@}*/
1777 
1778 /**
1779 * @struct GoReplayCombineType
1780 * @extends kValue
1781 * @ingroup GoSdk-Replay
1782 * @brief Represents a replay combine type.
1783 *
1784 * The following enumerators are defined:
1785 * - #GO_REPLAY_COMBINE_TYPE_ANY
1786 * - #GO_REPLAY_COMBINE_TYPE_ALL
1787 */
1788 typedef k32s GoReplayCombineType;
1789 /** @name GoReplayCombineType
1790 *@{*/
1791 #define GO_REPLAY_COMBINE_TYPE_ANY (0) ///< Any
1792 #define GO_REPLAY_COMBINE_TYPE_ALL (1) ///< All
1793 /**@}*/
1794 
1795 /**
1796 * @struct GoReplayMeasurementResult
1797 * @extends kValue
1798 * @ingroup GoSdk-Replay
1799 * @brief Represents a replay measurement result.
1800 *
1801 * The following enumerators are defined:
1802 * - #GO_REPLAY_MEASUREMENT_RESULT_PASS
1803 * - #GO_REPLAY_MEASUREMENT_RESULT_FAIL
1804 * - #GO_REPLAY_MEASUREMENT_RESULT_VALID
1805 * - #GO_REPLAY_MEASUREMENT_RESULT_INVALID
1806 * - #GO_REPLAY_MEASUREMENT_RESULT_FAIL_OR_INVALID
1807 */
1809 /** @name GoReplayMeasurementResult
1810 *@{*/
1811 #define GO_REPLAY_MEASUREMENT_RESULT_PASS (0) ///< Pass
1812 #define GO_REPLAY_MEASUREMENT_RESULT_FAIL (1) ///< Fail
1813 #define GO_REPLAY_MEASUREMENT_RESULT_VALID (2) ///< Valid
1814 #define GO_REPLAY_MEASUREMENT_RESULT_INVALID (3) ///< Invalid
1815 #define GO_REPLAY_MEASUREMENT_RESULT_FAIL_OR_INVALID (4) ///< Fail or Invalid
1816 /**@}*/
1817 
1818 /**
1819 * @struct GoReplayRangeCountCase
1820 * @extends kValue
1821 * @ingroup GoSdk-Replay
1822 * @brief Represents a replay range count case.
1823 *
1824 * The following enumerators are defined:
1825 * - #GO_REPLAY_RANGE_COUNT_CASE_AT_ABOVE
1826 * - #GO_REPLAY_RANGE_COUNT_CASE_BELOW
1827 */
1829 /** @name GoReplayRangeCountCase
1830 *@{*/
1831 #define GO_REPLAY_RANGE_COUNT_CASE_AT_ABOVE (0) ///< Case at above
1832 #define GO_REPLAY_RANGE_COUNT_CASE_BELOW (1) ///< Case below
1833 /**@}*/
1834 
1835 /// @cond (Gocator_1x00 || Gocator_2x00)
1836 
1837 /**
1838 * @struct GoAdvancedType
1839 * @extends kValue
1840 * @ingroup GoSdk
1841 * @brief Represents advanced acquisition type.
1842 *
1843 * The following enumerators are defined:
1844 * - #GO_ADVANCED_TYPE_CUSTOM
1845 * - #GO_ADVANCED_TYPE_DIFFUSE
1846 * - #GO_ADVANCED_TYPE_REFLECTIVE
1847 */
1848 typedef k32s GoAdvancedType;
1849 /** @name GoAdvancedType
1850 *@{*/
1851 #define GO_ADVANCED_TYPE_CUSTOM (0) ///< Custom advanced acquisition type.
1852 #define GO_ADVANCED_TYPE_DIFFUSE (1) ///< Diffuse advanced acquisition type.
1853 #define GO_ADVANCED_TYPE_REFLECTIVE (3) ///< Reflective advanced acquisition type.
1854 /**@}*/
1855 
1856 /**
1857  * @struct GoMaterialType
1858  * @deprecated
1859  * @extends kValue
1860  * @ingroup GoSdk
1861  * @brief Represents a material acquisition type.
1862  *
1863  * The following enumerators are defined:
1864  * - #GO_MATERIAL_TYPE_CUSTOM
1865  * - #GO_MATERIAL_TYPE_DIFFUSE
1866  */
1867 typedef k32s GoMaterialType;
1868 /** @name GoMaterialType
1869  *@{*/
1870 #define GO_MATERIAL_TYPE_CUSTOM (0) ///< Custom material acquisition type.
1871 #define GO_MATERIAL_TYPE_DIFFUSE (1) ///< Diffuse material acquisition type.
1872 /**@}*/
1873 
1874 /**
1875  * @struct GoSpotSelectionType
1876  * @extends kValue
1877  * @ingroup GoSdk
1878  * @brief Represents a spot selection type.
1879  *
1880  * The following enumerators are defined:
1881  * - #GO_SPOT_SELECTION_TYPE_BEST
1882  * - #GO_SPOT_SELECTION_TYPE_TOP
1883  * - #GO_SPOT_SELECTION_TYPE_BOTTOM
1884  * - #GO_SPOT_SELECTION_TYPE_NONE
1885  * - #GO_SPOT_SELECTION_TYPE_CONTINUITY
1886  */
1887 typedef k32s GoSpotSelectionType;
1888 /** @name GoSpotSelectionType
1889  *@{*/
1890 #define GO_SPOT_SELECTION_TYPE_BEST (0) ///< Select the spot with the best value.
1891 #define GO_SPOT_SELECTION_TYPE_TOP (1) ///< Select the top-most spot.
1892 #define GO_SPOT_SELECTION_TYPE_BOTTOM (2) ///< Select the bottom-most spot.
1893 #define GO_SPOT_SELECTION_TYPE_NONE (3) ///< Disable spot selection.
1894 #define GO_SPOT_SELECTION_TYPE_CONTINUITY (4) ///< Select most continuous spot
1895  /**@}*/
1896 /// @endcond
1897 
1898 /// @cond (Gocator_1x00 || Gocator_2x00)
1899 /**
1900  * @struct GoProfileStripBaseType
1901  * @extends kValue
1902  * @ingroup GoSdk-ProfileTools
1903  * @brief Represents a profile strip tool base type.
1904  *
1905  * The following enumerators are defined:
1906  * - #GO_PROFILE_STRIP_BASE_TYPE_NONE
1907  * - #GO_PROFILE_STRIP_BASE_TYPE_FLAT
1908  */
1910 /** @name GoProfileStripBaseType
1911  *@{*/
1912 #define GO_PROFILE_STRIP_BASE_TYPE_NONE (0) ///< No strip base type.
1913 #define GO_PROFILE_STRIP_BASE_TYPE_FLAT (1) ///< Flat strip base type.
1914 /**@}*/
1915 
1916 /**
1917  * @struct GoProfileStripEdgeType
1918  * @extends kValue
1919  * @ingroup GoSdk-ProfileTools
1920  * @brief Represents a profile strip tool edge type.
1921  *
1922  * The following enumerators are defined:
1923  * - #GO_PROFILE_STRIP_EDGE_TYPE_RISING
1924  * - #GO_PROFILE_STRIP_EDGE_TYPE_FALLING
1925  * - #GO_PROFILE_STRIP_EDGE_TYPE_DATA_END
1926  * - #GO_PROFILE_STRIP_EDGE_TYPE_VOID
1927  */
1929 /** @name GoProfileStripEdgeType
1930  *@{*/
1931 #define GO_PROFILE_STRIP_EDGE_TYPE_RISING (1) ///< Rising strip edge type.
1932 #define GO_PROFILE_STRIP_EDGE_TYPE_FALLING (2) ///< Falling strip edge type.
1933 #define GO_PROFILE_STRIP_EDGE_TYPE_DATA_END (4) ///< Data end strip edge type.
1934 #define GO_PROFILE_STRIP_EDGE_TYPE_VOID (8) ///< Void strip edge type.
1935 /**@}*/
1936 
1937 
1938 /**
1939  * @struct GoProfileFeatureType
1940  * @ingroup GoSdk-ProfileTools
1941  * @brief Represents a profile feature point type.
1942  *
1943  * The following enumerators are defined:
1944  * - #GO_PROFILE_FEATURE_TYPE_MAX_Z
1945  * - #GO_PROFILE_FEATURE_TYPE_MIN_Z
1946  * - #GO_PROFILE_FEATURE_TYPE_MAX_X
1947  * - #GO_PROFILE_FEATURE_TYPE_MIN_X
1948  * - #GO_PROFILE_FEATURE_TYPE_CORNER
1949  * - #GO_PROFILE_FEATURE_TYPE_AVERAGE
1950  * - #GO_PROFILE_FEATURE_TYPE_RISING_EDGE
1951  * - #GO_PROFILE_FEATURE_TYPE_FALLING_EDGE
1952  * - #GO_PROFILE_FEATURE_TYPE_ANY_EDGE
1953  * - #GO_PROFILE_FEATURE_TYPE_TOP_CORNER
1954  * - #GO_PROFILE_FEATURE_TYPE_BOTTOM_CORNER
1955  * - #GO_PROFILE_FEATURE_TYPE_LEFT_CORNER
1956  * - #GO_PROFILE_FEATURE_TYPE_RIGHT_CORNER
1957  * - #GO_PROFILE_FEATURE_TYPE_MEDIAN
1958  */
1959 typedef k32s GoProfileFeatureType;
1960 /** @name GoProfileFeatureType
1961  *@{*/
1962 #define GO_PROFILE_FEATURE_TYPE_MAX_Z (0) ///< Point with the maximum Z value.
1963 #define GO_PROFILE_FEATURE_TYPE_MIN_Z (1) ///< Point with the minimum Z value.
1964 #define GO_PROFILE_FEATURE_TYPE_MAX_X (2) ///< Point with the maximum X value.
1965 #define GO_PROFILE_FEATURE_TYPE_MIN_X (3) ///< Point with the minimum X value.
1966 #define GO_PROFILE_FEATURE_TYPE_CORNER (4) ///< Dominant corner.
1967 #define GO_PROFILE_FEATURE_TYPE_AVERAGE (5) ///< Average of points.
1968 #define GO_PROFILE_FEATURE_TYPE_RISING_EDGE (6) ///< Rising edge.
1969 #define GO_PROFILE_FEATURE_TYPE_FALLING_EDGE (7) ///< Falling edge.
1970 #define GO_PROFILE_FEATURE_TYPE_ANY_EDGE (8) ///< Rising or falling edge.
1971 #define GO_PROFILE_FEATURE_TYPE_TOP_CORNER (9) ///< Top-most corner.
1972 #define GO_PROFILE_FEATURE_TYPE_BOTTOM_CORNER (10) ///< Bottom-most corner.
1973 #define GO_PROFILE_FEATURE_TYPE_LEFT_CORNER (11) ///< Left-most corner.
1974 #define GO_PROFILE_FEATURE_TYPE_RIGHT_CORNER (12) ///< Right-most corner.
1975 #define GO_PROFILE_FEATURE_TYPE_MEDIAN (13) ///< Median of points.
1976 /**@}*/
1977 
1978 /**
1979  * @struct GoProfileGapAxis
1980  * @ingroup GoSdk-ProfileTools
1981  * @brief Represents a profile gap measurement axis.
1982  *
1983  * The following enumerators are defined:
1984  * - #GO_PROFILE_GAP_AXIS_EDGE
1985  * - #GO_PROFILE_GAP_AXIS_SURFACE
1986  * - #GO_PROFILE_GAP_AXIS_DISTANCE
1987  */
1988 typedef k32s GoProfileGapAxis;
1989 /** @name GoProfileGapAxis
1990  *@{*/
1991 #define GO_PROFILE_GAP_AXIS_EDGE (0) ///< Measure the gap along the edge normal.
1992 #define GO_PROFILE_GAP_AXIS_SURFACE (1) ///< Measure the gap along the surface line.
1993 #define GO_PROFILE_GAP_AXIS_DISTANCE (2) ///< Measure the shortest distance between the two edges.
1994 /**@}*/
1995 
1996 /**
1997  * @struct GoProfileEdgeType
1998  * @ingroup GoSdk-ProfileTools
1999  * @brief Represents a profile edge type.
2000  *
2001  * The following enumerators are defined:
2002  * - #GO_PROFILE_EDGE_TYPE_TANGENT
2003  * - #GO_PROFILE_EDGE_TYPE_CORNER
2004  */
2005 typedef k32s GoProfileEdgeType;
2006 /** @name GoProfileEdgeType
2007  *@{*/
2008 #define GO_PROFILE_EDGE_TYPE_TANGENT (0) ///< Detect the edge by looking for the tangent.
2009 #define GO_PROFILE_EDGE_TYPE_CORNER (1) ///< Detect the edge by looking for the corner.
2010 /**@}*/
2011 
2012 /**
2013  * @struct GoProfileBaseline
2014  * @ingroup GoSdk-ProfileTools
2015  * @brief Determines whether to use a line based on a Profile Line fit, or based on the x-axis.
2016  *
2017  * The following enumerators are defined:
2018  * - #GO_PROFILE_BASELINE_TYPE_X_AXIS
2019  * - #GO_PROFILE_BASELINE_TYPE_Z_AXIS
2020  * - #GO_PROFILE_BASELINE_TYPE_LINE
2021  */
2022 typedef k32s GoProfileBaseline;
2023 /** @name GoProfileBaseline
2024  *@{*/
2025 #define GO_PROFILE_BASELINE_TYPE_X_AXIS (0) ///< Use the X-Axis.
2026 #define GO_PROFILE_BASELINE_TYPE_Z_AXIS (1) ///< Use the Z-Axis.
2027 #define GO_PROFILE_BASELINE_TYPE_LINE (2) ///< Use the line fit.
2028 /**@}*/
2029 
2030 /**
2031  * @struct GoProfileAreaType
2032  * @ingroup GoSdk-ProfileTools
2033  * @brief Determines how to calculate profile area
2034  *
2035  * The following enumerators are defined:
2036  * - #GO_PROFILE_AREA_TYPE_OBJECT
2037  * - #GO_PROFILE_AREA_TYPE_CLEARANCE
2038  */
2039 typedef k32s GoProfileAreaType;
2040 /** @name GoProfileAreaType
2041  *@{*/
2042 #define GO_PROFILE_AREA_TYPE_OBJECT (0) ///< Sum the profile area that is above the line.
2043 #define GO_PROFILE_AREA_TYPE_CLEARANCE (1) ///< Sum the profile area that is below the line.
2044 /**@}*/
2045 
2046 /**
2047  * @struct GoProfileGapSide
2048  * @ingroup GoSdk-ProfileTools
2049  * @brief Selects which edge to use as the reference in a panel tool.
2050  *
2051  * The following enumerators are defined:
2052  * - #GO_PROFILE_PANEL_SIDE_LEFT
2053  * - #GO_PROFILE_PANEL_SIDE_RIGHT
2054  */
2055 typedef k32s GoProfilePanelSide;
2056 /** @name GoProfilePanelSide
2057  *@{*/
2058 #define GO_PROFILE_PANEL_SIDE_LEFT (0) ///< Use the left edge.
2059 #define GO_PROFILE_PANEL_SIDE_RIGHT (1) ///< Use the right edge.
2060 /**@}*/
2061 
2062 /**
2063  * @struct GoProfileRoundCornerDirection
2064  * @ingroup GoSdk-ProfileTools
2065  * @brief Selects which reference direction to use for the round corner tool.
2066  *
2067  * The following enumerators are defined:
2068  * - #GO_PROFILE_ROUND_CORNER_DIRECTION_LEFT
2069  * - #GO_PROFILE_ROUND_CORNER_DIRECTION_RIGHT
2070  */
2071 
2073 /** @name GoProfileRoundCornerDirection
2074  *@{*/
2075 #define GO_PROFILE_ROUND_CORNER_DIRECTION_LEFT (0) ///< Use the left edge.
2076 #define GO_PROFILE_ROUND_CORNER_DIRECTION_RIGHT (1) ///< Use the right edge.
2077 /**@}*/
2078 
2079 /**
2080  * @struct GoProfileGrooveShape
2081  * @ingroup GoSdk-ProfileTools
2082  * @brief Represents a profile edge type.
2083  *
2084  * The following enumerators are defined:
2085  * - #GO_PROFILE_GROOVE_SHAPE_U
2086  * - #GO_PROFILE_GROOVE_SHAPE_V
2087  * - #GO_PROFILE_GROOVE_SHAPE_OPEN
2088  */
2089 typedef k32s GoProfileGrooveShape;
2090 /** @name GoProfileGrooveShape
2091  *@{*/
2092 #define GO_PROFILE_GROOVE_SHAPE_U (0) ///< Detect grooves that are U shaped.
2093 #define GO_PROFILE_GROOVE_SHAPE_V (1) ///< Detect grooves that are V shaped.
2094 #define GO_PROFILE_GROOVE_SHAPE_OPEN (2) ///< Detect grooves that are open.
2095 /**@}*/
2096 
2097 /**
2098  * @struct GoProfileGrooveSelectType
2099  * @ingroup GoSdk-ProfileTools
2100  * @brief Determines which groove to select when multiple are present.
2101  *
2102  * The following enumerators are defined:
2103  * - #GO_PROFILE_GROOVE_SELECT_TYPE_MAX_DEPTH
2104  * - #GO_PROFILE_GROOVE_SELECT_TYPE_LEFT_INDEX
2105  * - #GO_PROFILE_GROOVE_SELECT_TYPE_RIGHT_INDEX
2106  */
2108 /** @name GoProfileGrooveSelectType
2109  *@{*/
2110 #define GO_PROFILE_GROOVE_SELECT_TYPE_MAX_DEPTH (0) ///< Select the groove with the maximum depth.
2111 #define GO_PROFILE_GROOVE_SELECT_TYPE_LEFT_INDEX (1) ///< Select the groove with the currently selected index starting from the left side.
2112 #define GO_PROFILE_GROOVE_SELECT_TYPE_RIGHT_INDEX (2) ///< Select the groove with the currently selected index starting from the right side.
2113 /**@}*/
2114 
2115 /**
2116  * @struct GoProfileGrooveLocation
2117  * @ingroup GoSdk-ProfileTools
2118  * @brief Determines which groove position to return.
2119  *
2120  * The following enumerators are defined:
2121  * - #GO_PROFILE_GROOVE_LOCATION_BOTTOM
2122  * - #GO_PROFILE_GROOVE_LOCATION_LEFT
2123  * - #GO_PROFILE_GROOVE_LOCATION_RIGHT
2124  */
2126 /** @name GoProfileGrooveLocation
2127  *@{*/
2128 #define GO_PROFILE_GROOVE_LOCATION_BOTTOM (0) ///< Return the position of the bottom of the groove.
2129 #define GO_PROFILE_GROOVE_LOCATION_LEFT (1) ///< Return the position of the left corner of the groove.
2130 #define GO_PROFILE_GROOVE_LOCATION_RIGHT (2) ///< Return the position of the right corner of the groove.
2131 /**@}*/
2132 
2133 /**
2134  * @struct GoProfileStripSelectType
2135  * @ingroup GoSdk-ProfileTools
2136  * @brief Determines which Strip to select when multiple are present.
2137  *
2138  * The following enumerators are defined:
2139  * - #GO_PROFILE_STRIP_SELECT_TYPE_BEST
2140  * - #GO_PROFILE_STRIP_SELECT_TYPE_LEFT_INDEX
2141  * - #GO_PROFILE_STRIP_SELECT_TYPE_RIGHT_INDEX
2142  */
2144 /** @name GoProfileStripSelectType
2145  *@{*/
2146 #define GO_PROFILE_STRIP_SELECT_TYPE_BEST (0) ///< Select the best strip.
2147 #define GO_PROFILE_STRIP_SELECT_TYPE_LEFT_INDEX (1) ///< Select the strip with the currently selected index starting from the left side.
2148 #define GO_PROFILE_STRIP_SELECT_TYPE_RIGHT_INDEX (2) ///< Select the strip with the currently selected index starting from the right side.
2149 /**@}*/
2150 
2151 /**
2152  * @struct GoProfileStripLocation
2153  * @ingroup GoSdk-ProfileTools
2154  * @brief Determines which Strip position to return.
2155  *
2156  * The following enumerators are defined:
2157  * - #GO_PROFILE_STRIP_LOCATION_LEFT
2158  * - #GO_PROFILE_STRIP_LOCATION_RIGHT
2159  * - #GO_PROFILE_STRIP_LOCATION_BOTTOM
2160  */
2162 /** @name GoProfileStripLocation
2163  *@{*/
2164 #define GO_PROFILE_STRIP_LOCATION_LEFT (0) ///< Return the position of the left corner of the Strip.
2165 #define GO_PROFILE_STRIP_LOCATION_RIGHT (1) ///< Return the position of the right corner of the Strip.
2166 #define GO_PROFILE_STRIP_LOCATION_BOTTOM (2) ///< Return the position of the center of the Strip.
2167 /**@}*/
2168 
2169 /**
2170 * @struct GoProfileGenerationType
2171 * @extends kValue
2172 * @ingroup GoSdk-Profile
2173 * @brief Represents a profile generation type.
2174 *
2175 * The following enumerators are defined:
2176 * - #GO_PROFILE_GENERATION_TYPE_CONTINUOUS
2177 * - #GO_PROFILE_GENERATION_TYPE_FIXED_LENGTH
2178 * - #GO_PROFILE_GENERATION_TYPE_VARIABLE_LENGTH
2179 * - #GO_PROFILE_GENERATION_TYPE_ROTATIONAL
2180 */
2182 /** @name GoProfileGenerationType
2183 *@{*/
2184 #define GO_PROFILE_GENERATION_TYPE_CONTINUOUS (0) ///< Continuous Profile generation.
2185 #define GO_PROFILE_GENERATION_TYPE_FIXED_LENGTH (1) ///< Fixed length Profile generation.
2186 #define GO_PROFILE_GENERATION_TYPE_VARIABLE_LENGTH (2) ///< Variable length Profile generation.
2187 #define GO_PROFILE_GENERATION_TYPE_ROTATIONAL (3) ///< Rotational Profile generation.
2188 /**@}*/
2189 
2190 /**
2191 * @struct GoProfileGenerationStartTrigger
2192 * @extends kValue
2193 * @ingroup GoSdk-Profile
2194 * @brief Represents a profile generation start trigger.
2195 *
2196 * The following enumerators are defined:
2197 * - #GO_PROFILE_GENERATION_START_TRIGGER_SEQUENTIAL
2198 * - #GO_PROFILE_GENERATION_START_TRIGGER_DIGITAL
2199 */
2201 /** @name GoProfileGenerationStartTrigger
2202 *@{*/
2203 #define GO_PROFILE_GENERATION_START_TRIGGER_SEQUENTIAL (0) ///< Sequential start trigger.
2204 #define GO_PROFILE_GENERATION_START_TRIGGER_DIGITAL (1) ///< Digital input start trigger.
2205 /**@}*/
2206 
2207 /// @endcond
2208 
2209 /// @cond (Gocator_2x00 || Gocator_3x00)
2210 
2211 /**
2212  * @struct GoPartFrameOfReference
2213  * @extends kValue
2214  * @ingroup GoSdk
2215  * @brief Represents a part detection frame of reference.
2216  *
2217  * The following enumerators are defined:
2218  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_SENSOR
2219  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_SCAN
2220  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_PART
2221  */
2222 typedef k32s GoPartFrameOfReference;
2223 /** @name GoPartFrameOfReference
2224  *@{*/
2225 #define GO_PART_FRAME_OF_REFERENCE_TYPE_SENSOR (0) ///< Sensor frame of reference. 2x00 only.
2226 #define GO_PART_FRAME_OF_REFERENCE_TYPE_SCAN (0) ///< Scan frame of reference. 3x00 only. Value duplication is intentional.
2227 #define GO_PART_FRAME_OF_REFERENCE_TYPE_PART (1) ///< Part frame of reference.
2228 /**@}*/
2229 
2230 /**
2231  * @struct GoPartHeightThresholdDirection
2232  * @extends kValue
2233  * @ingroup GoSdk-Surface
2234  * @brief Represents a part detection height threshold direction.
2235  *
2236  * The following enumerators are defined:
2237  * - #GO_PART_HEIGHT_THRESHOLD_DIRECTION_ABOVE
2238  * - #GO_PART_HEIGHT_THRESHOLD_DIRECTION_BELOW
2239  */
2240 typedef k32s GoPartHeightThresholdDirection;
2241 /** @name GoPartHeightThresholdDirection
2242  *@{*/
2243 #define GO_PART_HEIGHT_THRESHOLD_DIRECTION_ABOVE (0) ///< Height threshold direction is above the Z-axis.
2244 #define GO_PART_HEIGHT_THRESHOLD_DIRECTION_BELOW (1) ///< Height threshold direction is below the Z-axis.
2245 /**@}*/
2246 
2247 /**
2248  * @struct GoSurfaceGenerationType
2249  * @extends kValue
2250  * @ingroup GoSdk-Surface
2251  * @brief Represents a surface generation type.
2252  *
2253  * The following enumerators are defined:
2254  * - #GO_SURFACE_GENERATION_TYPE_CONTINUOUS
2255  * - #GO_SURFACE_GENERATION_TYPE_FIXED_LENGTH
2256  * - #GO_SURFACE_GENERATION_TYPE_VARIABLE_LENGTH
2257  * - #GO_SURFACE_GENERATION_TYPE_ROTATIONAL
2258  */
2259 typedef k32s GoSurfaceGenerationType;
2260 /** @name GoSurfaceGenerationType
2261  *@{*/
2262 #define GO_SURFACE_GENERATION_TYPE_CONTINUOUS (0) ///< Continuous surface generation.
2263 #define GO_SURFACE_GENERATION_TYPE_FIXED_LENGTH (1) ///< Fixed length surface generation.
2264 #define GO_SURFACE_GENERATION_TYPE_VARIABLE_LENGTH (2) ///< Variable length surface generation.
2265 #define GO_SURFACE_GENERATION_TYPE_ROTATIONAL (3) ///< Rotational surface generation.
2266 /**@}*/
2267 
2268 /**
2269  * @struct GoSurfaceGenerationStartTrigger
2270  * @extends kValue
2271  * @ingroup GoSdk-Surface
2272  * @brief Represents a surface generation start trigger.
2273  *
2274  * The following enumerators are defined:
2275  * - #GO_SURFACE_GENERATION_START_TRIGGER_SEQUENTIAL
2276  * - #GO_SURFACE_GENERATION_START_TRIGGER_DIGITAL
2277  */
2278 typedef k32s GoSurfaceGenerationStartTrigger;
2279 /** @name GoSurfaceGenerationStartTrigger
2280  *@{*/
2281 #define GO_SURFACE_GENERATION_START_TRIGGER_SEQUENTIAL (0) ///< Sequential start trigger.
2282 #define GO_SURFACE_GENERATION_START_TRIGGER_DIGITAL (1) ///< Digital input start trigger.
2283 /**@}*/
2284 
2285 /**
2286  * @struct GoSurfaceLocation
2287  * @ingroup GoSdk-SurfaceTools
2288  * @brief Represents a surface location.
2289  *
2290  * The following enumerators are defined:
2291  * - #GO_SURFACE_LOCATION_TYPE_MAX
2292  * - #GO_SURFACE_LOCATION_TYPE_MIN
2293  * - #GO_SURFACE_LOCATION_TYPE_2D_CENTROID
2294  * - #GO_SURFACE_LOCATION_TYPE_3D_CENTROID
2295  * - #GO_SURFACE_LOCATION_TYPE_AVG
2296  * - #GO_SURFACE_LOCATION_TYPE_MEDIAN
2297  */
2298 typedef k32s GoSurfaceLocation;
2299 /** @name GoSurfaceLocation
2300  *@{*/
2301 #define GO_SURFACE_LOCATION_TYPE_MAX (0) ///< Location based on the maximum point.
2302 #define GO_SURFACE_LOCATION_TYPE_MIN (1) ///< Location based on the minimum point.
2303 #define GO_SURFACE_LOCATION_TYPE_2D_CENTROID (2) ///< Location based on a 2d centroid.
2304 #define GO_SURFACE_LOCATION_TYPE_3D_CENTROID (3) ///< Location based on a 3d centroid.
2305 #define GO_SURFACE_LOCATION_TYPE_AVG (4) ///< Location based on the average point.
2306 #define GO_SURFACE_LOCATION_TYPE_MEDIAN (5) ///< Location based on the median point.
2307 /**@}*/
2308 
2309 /**
2310  * @struct GoSurfaceFeatureType
2311  * @ingroup GoSdk-SurfaceTools
2312  * @brief Represents a surface feature type.
2313  *
2314  * The following enumerators are defined:
2315  * - #GO_SURFACE_FEATURE_TYPE_AVERAGE
2316  * - #GO_SURFACE_FEATURE_TYPE_CENTROID
2317  * - #GO_SURFACE_FEATURE_TYPE_X_MAX
2318  * - #GO_SURFACE_FEATURE_TYPE_X_MIN
2319  * - #GO_SURFACE_FEATURE_TYPE_Y_MAX
2320  * - #GO_SURFACE_FEATURE_TYPE_Y_MIN
2321  * - #GO_SURFACE_FEATURE_TYPE_Z_MAX
2322  * - #GO_SURFACE_FEATURE_TYPE_Z_MIN
2323  * - #GO_SURFACE_FEATURE_TYPE_MEDIAN
2324  */
2325 typedef k32s GoSurfaceFeatureType;
2326 /** @name GoSurfaceFeatureType
2327  *@{*/
2328 #define GO_SURFACE_FEATURE_TYPE_AVERAGE (0) ///< Feature based on the average.
2329 #define GO_SURFACE_FEATURE_TYPE_CENTROID (1) ///< Feature based on the centroid.
2330 #define GO_SURFACE_FEATURE_TYPE_X_MAX (2) ///< Feature based on the X maximum point.
2331 #define GO_SURFACE_FEATURE_TYPE_X_MIN (3) ///< Feature based on the X minimum point.
2332 #define GO_SURFACE_FEATURE_TYPE_Y_MAX (4) ///< Feature based on the Y maximum point.
2333 #define GO_SURFACE_FEATURE_TYPE_Y_MIN (5) ///< Feature based on the Y minimum point.
2334 #define GO_SURFACE_FEATURE_TYPE_Z_MAX (6) ///< Feature based on the Z maximum point.
2335 #define GO_SURFACE_FEATURE_TYPE_Z_MIN (7) ///< Feature based on the Z minimum point.
2336 #define GO_SURFACE_FEATURE_TYPE_MEDIAN (8) ///< Feature based on the median.
2337 /**@}*/
2338 
2339 /**
2340  * @struct GoSurfaceCountersunkHoleShape
2341  * @extends kValue
2342  * @ingroup GoSdk-SurfaceTools
2343  * @brief Represents a surface countersunk hole tool shape.
2344  *
2345  * The following enumerators are defined:
2346  * - #GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_CONE
2347  * - #GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_COUNTERBORE
2348  */
2349 typedef k32s GoSurfaceCountersunkHoleShape;
2350 /** @name GoSurfaceCountersunkHoleShape
2351  *@{*/
2352 #define GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_CONE (0) ///< Cone shape.
2353 #define GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_COUNTERBORE (1) ///< Counterbore shape.
2354 /**@}*/
2355 
2356 
2357 /**
2358  * @struct GoSurfaceOpeningType
2359  * @extends kValue
2360  * @ingroup GoSdk-SurfaceTools
2361  * @brief Represents a surface opening tool type.
2362  *
2363  * The following enumerators are defined:
2364  * - #GO_SURFACE_OPENING_TYPE_ROUNDED_SLOT
2365  * - #GO_SURFACE_OPENING_TYPE_ROUNDED_RECTANGLE
2366  */
2367 typedef k32s GoSurfaceOpeningType;
2368 /** @name GoSurfaceOpeningType
2369  *@{*/
2370 #define GO_SURFACE_OPENING_TYPE_ROUNDED_SLOT (0) ///< Rounded slot opening type.
2371 #define GO_SURFACE_OPENING_TYPE_ROUNDED_RECTANGLE (1) ///< Rectangular opening type.
2372 /**@}*/
2373 
2374 /**
2375 * @struct GoSurfaceRivetType
2376 * @extends kValue
2377 * @ingroup GoSdk-SurfaceTools
2378 * @brief Represents a surface rivet tool type.
2379 *
2380 * The following enumerators are defined:
2381 * - #GO_SURFACE_RIVET_TYPE_FLUSH
2382 * - #GO_SURFACE_RIVET_TYPE_RAISED
2383 */
2384 typedef k32s GoSurfaceRivetType;
2385 /** @name GoSurfaceRivetType
2386 *@{*/
2387 #define GO_SURFACE_RIVET_TYPE_FLUSH (0) ///< Flush rivet type.
2388 #define GO_SURFACE_RIVET_TYPE_RAISED (1) ///< Raised rivet type.
2389 /**@}*/
2390 
2391 /**
2392  * @struct GoPartMatchAlgorithm
2393  * @extends kValue
2394  * @ingroup GoSdk-Surface
2395  * @brief Represents a part matching algorithm.
2396  *
2397  * The following enumerators are defined:
2398  * - #GO_PART_MATCH_ALGORITHM_EDGE
2399  * - #GO_PART_MATCH_ALGORITHM_BOUNDING_BOX
2400  * - #GO_PART_MATCH_ALGORITHM_ELLIPSE
2401  */
2402 typedef k32s GoPartMatchAlgorithm;
2403 /** @name GoPartMatchAlgorithm
2404  *@{*/
2405 #define GO_PART_MATCH_ALGORITHM_EDGE (0) ///< Edge based part match algorithm.
2406 #define GO_PART_MATCH_ALGORITHM_BOUNDING_BOX (1) ///< Bounding box based part match algorithm.
2407 #define GO_PART_MATCH_ALGORITHM_ELLIPSE (2) ///< Ellipse based part match algorithm.
2408 /**@}*/
2409 
2410 
2411 /**
2412  * @struct GoBoxAsymmetryType
2413  * @extends kValue
2414  * @ingroup GoSdk-Surface
2415  * @brief Represents the bounding box part matching asymmetry detection type.
2416  *
2417  * The following enumerators are defined:
2418  * - #GO_BOX_ASYMMETRY_TYPE_NONE
2419  * - #GO_BOX_ASYMMETRY_TYPE_ALONG_LENGTH_AXIS
2420  * - #GO_BOX_ASYMMETRY_TYPE_ALONG_WIDTH_AXIS
2421  */
2422 typedef k32s GoBoxAsymmetryType;
2423 /** @name GoBoxAsymmetryType
2424  *@{*/
2425 #define GO_BOX_ASYMMETRY_TYPE_NONE (0) ///< None
2426 #define GO_BOX_ASYMMETRY_TYPE_ALONG_LENGTH_AXIS (1) ///< Along Length axis
2427 #define GO_BOX_ASYMMETRY_TYPE_ALONG_WIDTH_AXIS (2) ///< Along Width axis
2428 /**@}*/
2429 
2430 /**
2431  * @struct GoEllipseAsymmetryType
2432  * @extends kValue
2433  * @ingroup GoSdk-Surface
2434  * @brief Represents the bounding Ellipse part matching asymmetry detection type.
2435  *
2436  * The following enumerators are defined:
2437  * - #GO_ELLIPSE_ASYMMETRY_TYPE_NONE
2438  * - #GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MAJOR_AXIS
2439  * - #GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MINOR_AXIS
2440  */
2441 typedef k32s GoEllipseAsymmetryType;
2442 /** @name GoEllipseAsymmetryType
2443  *@{*/
2444 #define GO_ELLIPSE_ASYMMETRY_TYPE_NONE (0) ///< None
2445 #define GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MAJOR_AXIS (1) ///< Along Major axis
2446 #define GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MINOR_AXIS (2) ///< Along Minor axis
2447 /**@}*/
2448 
2449 
2450 #define GO_SURFACE_COUNTERSUNK_HOLE_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Counter Sunk Hole Tool.
2451 #define GO_SURFACE_HOLE_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Hole Tool.
2452 #define GO_SURFACE_OPENING_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Opening Tool.
2453 #define GO_SURFACE_PLANE_MAX_REGIONS (4) ///< The maximum number of reference regions permitted for the Surface Plane Tool.
2454 #define GO_SURFACE_RIVET_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Rivet Tool.
2455 #define GO_SURFACE_STUD_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Stud Tool.
2456 
2457 /**
2458  * @struct GoImageType
2459  * @extends kValue
2460  * @ingroup GoSdk
2461  * @brief Represents an image type.
2462  *
2463  * The following enumerators are defined:
2464  * - #GO_IMAGE_TYPE_HEIGHTMAP
2465  * - #GO_IMAGE_TYPE_INTENSITY
2466  */
2467 typedef k32s GoImageType;
2468 /** @name GoImageType
2469  *@{*/
2470 #define GO_IMAGE_TYPE_HEIGHTMAP (0) ///< Heightmap image type.
2471 #define GO_IMAGE_TYPE_INTENSITY (1) ///< Intensity image type.
2472 /**@}*/
2473 
2474 /**
2475  * @struct GoSurfaceEncoding
2476  * @extends kValue
2477  * @ingroup GoSdk
2478  * @brief Represents a surface scanning engine encoding type
2479  *
2480  * The following enumerators are defined:
2481  * - #GO_SURFACE_ENCODING_STANDARD
2482  * - #GO_SURFACE_ENCODING_INTERREFLECTION
2483  */
2484 typedef k32s GoSurfaceEncoding;
2485 /** @name GoSurfaceEncoding
2486  *@{*/
2487 #define GO_SURFACE_ENCODING_STANDARD (0) ///< Standard Phase Encoding
2488 #define GO_SURFACE_ENCODING_INTERREFLECTION (1) ///< Interreflection Encoding (Advanced Users Only)
2489 /**@}*/
2490 
2491 /**
2492  * @struct GoSurfacePhaseFilter
2493  * @extends kValue
2494  * @ingroup GoSdk
2495  * @brief Represents a surface phase filter type
2496  *
2497  * The following enumerators are defined:
2498  * - #GO_SURFACE_PHASE_FILTER_NONE
2499  * - #GO_SURFACE_PHASE_FILTER_REFLECTIVE
2500  * - #GO_SURFACE_PHASE_FILTER_TRANSLUCENT
2501  */
2502 typedef k32s GoSurfacePhaseFilter;
2503 /** @name GoSurfacePhaseFilter
2504  *@{*/
2505 #define GO_SURFACE_PHASE_FILTER_NONE (0) ///< Standard
2506 #define GO_SURFACE_PHASE_FILTER_REFLECTIVE (1) ///< Reflective Phase Filters
2507 #define GO_SURFACE_PHASE_FILTER_TRANSLUCENT (2) ///< Translucent Phase Filters
2508 /**@}*/
2509 
2510 
2511 /// @endcond
2512 
2513 /**
2514  * @struct GoGammaType
2515  * @extends kValue
2516  * @ingroup GoSdk
2517  * @brief Represents an advanced gamma type.
2518  *
2519  * The following enumerators are defined:
2520  * - #GO_GAMMA_TYPE_NONE
2521  * - #GO_GAMMA_TYPE_LOW
2522  * - #GO_GAMMA_TYPE_MEDIUM
2523  * - #GO_GAMMA_TYPE_HIGH
2524  */
2525 typedef k32s GoGammaType;
2526 /** @name GoGammaType
2527  *@{*/
2528 #define GO_GAMMA_TYPE_NONE (0) ///< None. No imager gamma / multi-slope configuration will occur.
2529 #define GO_GAMMA_TYPE_LOW (1) ///< Low.
2530 #define GO_GAMMA_TYPE_MEDIUM (2) ///< Medium.
2531 #define GO_GAMMA_TYPE_HIGH (3) ///< High.
2532 /**@}*/
2533 
2534 /**
2535  * @struct GoPatternSequenceType
2536  * @extends kValue
2537  * @ingroup GoSdk
2538  * @brief Represents a pattern sequence type.
2539  *
2540  * The following enumerators are defined:
2541  * - #GO_PATTERN_SEQUENCE_TYPE_DEFAULT
2542  * - #GO_PATTERN_SEQUENCE_TYPE_CUSTOM
2543  *
2544  */
2545 typedef k32s GoPatternSequenceType;
2546 /** @name GoPatternSequenceType
2547  *@{*/
2548 
2549 #define GO_PATTERN_SEQUENCE_TYPE_DEFAULT (0) ///< Default sequence pattern.
2550 #define GO_PATTERN_SEQUENCE_TYPE_CUSTOM (100) ///< Custom sequence pattern.
2551 /**@}*/
2552 
2553 
2554 /**
2555  * @struct GoImplicitTriggerOverride
2556  * @extends kValue
2557  * @ingroup GoSdk
2558  * @brief Represents an EthernetIP implicit messaging trigger override.
2559  *
2560  * The following enumerators are defined:
2561  * - #GO_IMPLICIT_TRIGGER_OVERRIDE_OFF
2562  * - #GO_IMPLICIT_TRIGGER_OVERRIDE_CYCLIC
2563  * - #GO_IMPLICIT_TRIGGER_OVERRIDE_CHANGE_OF_STATE
2564  *
2565  */
2567 /** @name GoImplicitTriggerOverride
2568  *@{*/
2569 
2570 #define GO_IMPLICIT_TRIGGER_OVERRIDE_OFF (0) ///< Use the implicit output trigger specified in the connection header.
2571 #define GO_IMPLICIT_TRIGGER_OVERRIDE_CYCLIC (1) ///< Utilize cyclic implicit messaging trigger behavior regardless of what is specified in the connection header.
2572 #define GO_IMPLICIT_TRIGGER_OVERRIDE_CHANGE_OF_STATE (2) ///< Utilize change of state implicit messaging trigger behavior regardless of what is specified in the connection header.
2573 /**@}*/
2574 
2575 /**
2576  * @struct GoAlignmentStatus
2577  * @extends kValue
2578  * @ingroup GoSdk
2579  * @brief Represents the operation status of an alignment.
2580  *
2581  * The following enumerators are defined:
2582  * - #GO_ALIGNMENT_STATUS_OK
2583  * - #GO_ALIGNMENT_STATUS_GENERAL_FAILURE
2584  * - #GO_ALIGNMENT_STATUS_STATIONARY_NO_DATA
2585  * - #GO_ALIGNMENT_STATUS_MOVING_INSUFFICIENT_DATA
2586  * - #GO_ALIGNMENT_STATUS_INVALID_TARGET
2587  * - #GO_ALIGNMENT_STATUS_UNEXPECTED_TARGET_POSITION
2588  * - #GO_ALIGNMENT_STATUS_BAR_HOLE_NOT_FOUND
2589  * - #GO_ALIGNMENT_STATUS_MOVING_NO_ENCODER_CHANGE
2590  * - #GO_ALIGNMENT_STATUS_ABORT
2591  * - #GO_ALIGNMENT_STATUS_TIMEOUT
2592  * - #GO_ALIGNMENT_STATUS_INVALID_PARAMETER
2593  *
2594  */
2595 typedef k32s GoAlignmentStatus;
2596 /** @name GoAlignmentStatus
2597  *@{*/
2598 
2599 #define GO_ALIGNMENT_STATUS_OK (1) ///< Alignment operation succeeded.
2600 #define GO_ALIGNMENT_STATUS_GENERAL_FAILURE (0) ///< Alignment operation failed.
2601 #define GO_ALIGNMENT_STATUS_STATIONARY_NO_DATA (-1) ///< Stationary alignment failed due to no data being received. Please ensure the target is in range.
2602 #define GO_ALIGNMENT_STATUS_MOVING_INSUFFICIENT_DATA (-2) ///< Moving alignment failed due to insufficient data.
2603 #define GO_ALIGNMENT_STATUS_INVALID_TARGET (-3) ///< Invalid target detected. Examples include the target dimensions being too small, the target touches both sides of the field of view, or there is insufficient data after some internal filtering.
2604 #define GO_ALIGNMENT_STATUS_UNEXPECTED_TARGET_POSITION (-4) ///< Target detected in an unexpected position. Please ensure the target is stable and there are no obstructions.
2605 #define GO_ALIGNMENT_STATUS_BAR_HOLE_NOT_FOUND (-5) ///< No reference hole was found during bar alignment. Please ensure the holes can be seen and that the target parameters match their physical dimensions.
2606 #define GO_ALIGNMENT_STATUS_MOVING_NO_ENCODER_CHANGE (-6) ///< No change in encoder value occurred during moving alignment. Please ensure the encoder is connected and the target is moving.
2607 #define GO_ALIGNMENT_STATUS_ABORT (kERROR_ABORT) ///< The alignment was aborted by the user.
2608 #define GO_ALIGNMENT_STATUS_TIMEOUT (kERROR_TIMEOUT) ///< The alignment timed out.
2609 #define GO_ALIGNMENT_STATUS_INVALID_PARAMETER (kERROR_PARAMETER) ///< The alignment failed due to incorrected parameters.
2610 /**@}*/
2611 
2612 typedef struct GoFeatureOption
2613 {
2614  kText64 name;
2615  kSize minCount;
2616  kSize maxCount;
2617  GoFeatureDataType dataType;
2618  kText64 type;
2619 } GoFeatureOption;
2620 
2621 typedef struct GoMeasurementOption
2622 {
2623  kText64 name;
2624  kSize minCount;
2625  kSize maxCount;
2626 } GoMeasurementOption;
2627 
2628 typedef struct GoToolDataOutputOption
2629 {
2630  kText64 name;
2631  kText64 type;
2632  GoDataType dataType;
2633  kSize minCount;
2634  kSize maxCount;
2635 } GoToolDataOutputOption;
2636 
2637 /**
2638  * @struct GoEventType
2639  * @extends kValue
2640  * @ingroup GoSdk
2641  * @brief Represents the event type represented by an event message.
2642  *
2643  * The following enumerator is defined:
2644  * - GO_EVENT_TYPE_EXPOSURE_END
2645  *
2646  */
2647 typedef k32s GoEventType;
2648 /** @name GoEventType
2649  *@{*/
2650 
2651 #define GO_EVENT_TYPE_EXPOSURE_END (1)
2652 /**@}*/
2653 
2654 /**
2655 * @struct GoOcclusionReductionAlg
2656 * @extends kValue
2657 * @ingroup GoSdk
2658 * @brief Represents an occlusion reduction algorithm.
2659 *
2660 * The following enumerators are defined:
2661 * - #GO_OCCLUSION_REDUCTION_NORMAL
2662 * - #GO_OCCLUSION_REDUCTION_HIGH_QUALITY
2663 */
2665 /** @name GoOcclusionReductionAlg
2666 *@{*/
2667 #define GO_OCCLUSION_REDUCTION_NORMAL (0) ///< Basic occlusion reduction.
2668 #define GO_OCCLUSION_REDUCTION_HIGH_QUALITY (1) ///< High quality occlusion reduction.
2669 /**@}*/
2670 
2671 /**
2672 * @struct GoDemosaicStyle
2673 * @extends kValue
2674 * @ingroup GoSdk
2675 * @brief Represents a Bayer demosaic algorithm style.
2676 *
2677 * The following enumerators are defined:
2678 * - #GO_DEMOSAIC_STYLE_REDUCE
2679 * - #GO_DEMOSAIC_STYLE_BILINEAR
2680 * - #GO_DEMOSAIC_STYLE_GRADIENT
2681 */
2682 typedef k32s GoDemosaicStyle;
2683 /** @name GoDemosaicStyle
2684 *@{*/
2685 #define GO_DEMOSAIC_STYLE_REDUCE (0) ///< Simple Reduce (Shrinks image width and height by a factor of 2)
2686 #define GO_DEMOSAIC_STYLE_BILINEAR (1) ///< Bilinear demosaic (Same size output)
2687 #define GO_DEMOSAIC_STYLE_GRADIENT (2) ///< Gradient demosaic (Same size output)
2688 /**@}*/
2689 
2690 
2691 /**
2692 * @struct GoVoltageSetting
2693 * @extends kValue
2694 * @ingroup GoSdk
2695 * @brief Represents either 48V or 24V (with cable length) operation.
2696 * Only relevant on G3210
2697 *
2698 * The following enumerators are defined:
2699 * - #GO_VOLTAGE_48
2700 * - #GO_VOLTAGE_24
2701 */
2702 typedef k16u GoVoltageSetting;
2703 /** @name GoVoltageSetting
2704 *@{*/
2705 #define GO_VOLTAGE_48 (0) ///< 48V (No Cable length input required)
2706 #define GO_VOLTAGE_24 (1) ///< 24V (Cable Length required + projector dimming)
2707 /**@}*/
2708 
2709 kEndHeader()
2710 #include <GoSdk/GoSdkDef.x.h>
2711 
2712 #endif
Represents an active area configuration element.
Definition: GoSdkDef.h:800
k64f yAngle
The Y angle of the transformation. (degrees)
Definition: GoSdkDef.h:822
Lists all tool types.
k64f y
The Y offset of the transformed data region. (mm)
Definition: GoSdkDef.h:835
Sensor state, login, alignment information, recording state, playback source, uptime, playback information, and auto-start setting state.
Definition: GoSdkDef.h:681
Ports used from a source device.
Definition: GoSdkDef.h:718
Represents a data input source.
Represents an output delay domain.
Represents a 32-bit unsigned integer configuration element with a range and enabled state...
Definition: GoSdkDef.h:760
k32s playbackSource
The current playback source of the sensor.
Definition: GoSdkDef.h:688
Represents all possible sources of intensity data.
k16u dataPort
Data channel port.
Definition: GoSdkDef.h:723
Represents a playback seek direction.
kBool enabled
Represents whether the element value is currently used.
Definition: GoSdkDef.h:777
k64f max
The maximum allowable value that can be set for this element.
Definition: GoSdkDef.h:750
GoUser loginType
The logged in user.
Definition: GoSdkDef.h:684
Represents the replay export source type.
Represents a replay condition type.
k16u controlPort
Control channel port.
Definition: GoSdkDef.h:720
Represents data source selections. Used as a bitmask.
GoAlignmentRef alignmentReference
The alignment reference of the sensor.
Definition: GoSdkDef.h:685
Lists all measurement types.
GoElement64f value
The filter's configuration properties.
Definition: GoSdkDef.h:791
Represents the possible measurement decision codes.
kBool isAccelerator
The accelerated state of the sensor.
Definition: GoSdkDef.h:694
Represents the supported Gocator hardware families.
Represents a user role.
kBool enabled
Represents whether the element value is currently used.
Definition: GoSdkDef.h:762
Represents a replay combine type.
Represents an alignment degree of freedom setting.
Represents a replay measurement result.
kBool useDhcp
Sensor uses DHCP?
Definition: GoSdkDef.h:706
Represents a ethernet output protocol.
Represents a data stream which consists of a data step and ID.
Definition: GoSdkDef.h:1145
Represents a data source.
k32u playbackCount
The playback count.
Definition: GoSdkDef.h:692
Represents a transformed data region.
Definition: GoSdkDef.h:832
GoElement64f length
The length of the active area. (mm)
Definition: GoSdkDef.h:806
k64f x
The X offset of the transformed data region. (mm)
Definition: GoSdkDef.h:834
k32u uptimeSec
Sensor uptime in seconds.
Definition: GoSdkDef.h:689
Represents the measurement output decision values. Bit 0 represents the decision value, while bits 1 through 7 represent the decision code, outlined by GoDecisionCode.
GoAlignmentState alignmentState
The alignment state of the sensor.
Definition: GoSdkDef.h:686
Represents a trigger.
k64f y
The Y offset of the transformation. (mm)
Definition: GoSdkDef.h:819
Represents an endian output type.
Represents an alignment element.
Definition: GoSdkDef.h:816
Represents a material acquisition type.
Represents either 48V or 24V (with cable length) operation. Only relevant on G3210.
Lists all feature types.
k64f value
The element's double field value.
Definition: GoSdkDef.h:749
Lists all feature data types.
Represents a composite data source.
Definition: GoSdkDef.h:848
GoBuddyState state
Buddy state of this device.
Definition: GoSdkDef.h:736
Represents a profile generation start trigger.
GoElement64f width
The width of the active area. (mm)
Definition: GoSdkDef.h:807
GoElement64f z
The Z offset of the active area. (mm)
Definition: GoSdkDef.h:804
Represents an alignment state.
kBool recordingEnabled
The current state of recording on the sensor.
Definition: GoSdkDef.h:687
kIpAddress gateway
Sensor gateway address.
Definition: GoSdkDef.h:709
kBool autoStartEnabled
The auto-start enabled state.
Definition: GoSdkDef.h:693
Selects which reference direction to use for the round corner tool.
Represents a profile edge type.
GoElement64f y
The Y offset of the active area. (mm)
Definition: GoSdkDef.h:803
Determines which groove to select when multiple are present.
k64f min
The minimum allowable value that can be set for this element.
Definition: GoSdkDef.h:751
Represents an advanced gamma type.
Represents an analog output trigger.
Represents all possible intensity generation modes for multiple exposures.
Represents a video message pixel type.
Represents a filter configuration element.
Definition: GoSdkDef.h:788
Represents the status of the Accelerator connection.
Represents an EthernetIP implicit messaging trigger override.
GoState sensorState
The state of the sensor.
Definition: GoSdkDef.h:683
kIpAddress address
Sensor IP address.
Definition: GoSdkDef.h:707
Represents a Bayer demosaic algorithm style.
Represents a profile strip tool base type.
kBool enabled
Represents whether the element value is currently used. (not always applicable)
Definition: GoSdkDef.h:747
Buddy related status of another sensor.
Definition: GoSdkDef.h:733
Represents the operation status of an alignment.
k64f width
The width of the transformed data region. (mm)
Definition: GoSdkDef.h:837
Represents a profile strip tool edge type.
Represents the system's primary synchronization domain.
Represents an encoder's triggering behavior.
Represents an ASCII standard format type.
kBool systemValue
The system value. (not always applicable)
Definition: GoSdkDef.h:778
Corner parameters for polygon corner alignment.
Definition: GoSdkDef.h:557
Lists all data message types.
k64f progress
Upgrade progress (percentage).
Definition: GoSdkDef.h:68
Represents a sensor orientation type.
Represents a user id.
k32u id
Serial number of the device.
Definition: GoSdkDef.h:735
Determines which groove position to return.
k32u min
The minimum allowable value that can be set for this element.
Definition: GoSdkDef.h:766
Represents an alignment target type.
Represents all possible exposure modes.
Represents a replay range count case.
Represents an alignment reference.
Represents output sources.
k64f zAngle
The Z angle of the transformation. (degrees)
Definition: GoSdkDef.h:823
k32u value
The element's 32-bit unsigned field value.
Definition: GoSdkDef.h:764
Represents a pattern sequence type.
Represents an ASCII protocol operational type.
Represents a analog output event.
kIpAddress mask
Sensor subnet bit-mask.
Definition: GoSdkDef.h:708
Represents arguments provided to an upgrade callback function.
Definition: GoSdkDef.h:66
Represents a 64-bit floating point configuration element with a range and enabled state...
Definition: GoSdkDef.h:745
Represents a digital output signal type.
Represents a trigger source type.
Represents spacing interval types.
Represents a profile gap measurement axis.
GoElement64f height
The height of the active area. (mm)
Definition: GoSdkDef.h:805
k32u max
The maximum allowable value that can be set for this element.
Definition: GoSdkDef.h:765
Represents an alignment type.
kBool used
Represents whether the filter field is currently used.
Definition: GoSdkDef.h:790
Represents a profile generation type.
Represents a boolean configuration element with an enabled state.
Definition: GoSdkDef.h:775
Represents the current maximum frame rate limiting source.
Represents an occlusion reduction algorithm.
k16u webPort
Web channel port.
Definition: GoSdkDef.h:722
Determines which Strip to select when multiple are present.
Represents a scan mode.
Represents a digital output event.
k64f systemValue
The system value. (not always applicable)
Definition: GoSdkDef.h:748
GoDataSource dataSource
The data source of the composite data source.
Definition: GoSdkDef.h:851
Represents the event type represented by an event message.
k64f x
The X offset of the transformation. (mm)
Definition: GoSdkDef.h:818
Determines which Strip position to return.
k32u systemValue
The system value. (not always applicable)
Definition: GoSdkDef.h:763
Represents a spot selection type.
k32u uptimeMicrosec
Sensor uptime in microseconds.
Definition: GoSdkDef.h:690
k32u playbackPos
The playback position index.
Definition: GoSdkDef.h:691
Determines how to calculate profile area.
Represents the selcom format followed on the serial output.
k32s id
The ID of the underlying data source.
Definition: GoSdkDef.h:850
k16u upgradePort
Upgrade channel port.
Definition: GoSdkDef.h:721
kBool quickEditEnabled
The current state of editting.
Definition: GoSdkDef.h:695
Represents possible data streams.
kBool value
The element's boolean field value.
Definition: GoSdkDef.h:779
k64f length
The length of the transformed data region. (mm)
Definition: GoSdkDef.h:838
k16u healthPort
Health channel port.
Definition: GoSdkDef.h:724
Determines whether to use a line based on a Profile Line fit, or based on the x-axis.
Represents advanced acquisition type.
GoElement64f x
The X offset of the active area. (mm)
Definition: GoSdkDef.h:802
k64f z
The Z offset of the transformation. (mm)
Definition: GoSdkDef.h:820
k64f height
The height of the transformed data region. (mm)
Definition: GoSdkDef.h:839
Represents a profile edge type.
Represents a profile feature point type.
k64f z
The Z offset of the transformed data region. (mm)
Definition: GoSdkDef.h:836
k64f xAngle
The X angle of the transformation. (degrees)
Definition: GoSdkDef.h:821
Represents a digital output condition.
Sensor network address settings.
Definition: GoSdkDef.h:704
Represents all serial output protocols.
Represents the current state of a sensor object.
Represents the current encoder period limiting source.