Gocator API
 All Classes Files Functions Variables Typedefs Macros Modules Pages
GoSurfaceTools.h
1 /// @cond (Gocator_2x00 || Gocator_3x00)
2 /**
3  * @file GoSurfaceTools.h
4  * @brief Declares all surface tools and their related classes.
5  *
6  * @internal
7  * Copyright (C) 2016 by LMI Technologies Inc.
8  * Licensed under the MIT License.
9  * Redistributed files must retain the above copyright notice.
10  */
11 
12 #ifndef GO_SURFACE_TOOLS_H
13 #define GO_SURFACE_TOOLS_H
14 
15 #include <GoSdk/GoSdkDef.h>
16 #include <GoSdk/Tools/GoTool.h>
17 #include <GoSdk/Tools/GoExtTool.h>
18 #include <GoSdk/Tools/GoSurfaceToolUtils.h>
19 #include <GoSdk/GoUtils.h>
20 
21 kBeginHeader()
22 
23 /**
24  * @class GoSurfaceTool
25  * @extends GoTool
26  * @ingroup GoSdk-SurfaceTools
27  * @brief Represents a base surface tool.
28  */
29 typedef GoTool GoSurfaceTool;
30 
31 /**
32  * Sets the data source. Note that source validation will only occur if tool
33  * is in the tool options list.
34  *
35  * @public @memberof GoSurfaceTool
36  * @version Introduced in firmware 4.0.10.27
37  * @param tool GoSurfaceTool object.
38  * @param source GoDataSource object.
39  * @return Operation status.
40  * @see GoTools_ToolOptionCount, GoTools_ToolOptionAt
41  */
42 GoFx(kStatus) GoSurfaceTool_SetSource(GoSurfaceTool tool, GoDataSource source);
43 
44 /**
45  * Gets the data source.
46  *
47  * @public @memberof GoSurfaceTool
48  * @version Introduced in firmware 4.0.10.27
49  * @param tool GoSurfaceTool object.
50  * @return The data source.
51  */
52 GoFx(GoDataSource) GoSurfaceTool_Source(GoSurfaceTool tool);
53 
54 /**
55  * Gets the data source option list count.
56  *
57  * @public @memberof GoSurfaceTool
58  * @version Introduced in firmware 4.0.10.27
59  * @param tool GoSurfaceTool object.
60  * @return The current tool data source option list count.
61  */
62 GoFx(kSize) GoSurfaceTool_SourceOptionCount(GoSurfaceTool tool);
63 
64 /**
65  * Gets the data source option at the given index.
66  *
67  * @public @memberof GoSurfaceTool
68  * @version Introduced in firmware 4.0.10.27
69  * @param tool GoSurfaceTool object.
70  * @param index The index of the option list to access.
71  * @return The tool data source option at the given index, or k32U_MAX if an invalid index is given.
72  */
73 
74 GoFx(k32u) GoSurfaceTool_SourceOptionAt(GoSurfaceTool tool, kSize index);
75 
76 /**
77  * Gets the X-anchoring option list count.
78  *
79  * @public @memberof GoSurfaceTool
80  * @version Introduced in firmware 4.0.10.27
81  * @param tool GoSurfaceTool object.
82  * @return The X-anchoring option list count.
83  */
84 GoFx(kSize) GoSurfaceTool_XAnchorOptionCount(GoSurfaceTool tool);
85 
86 /**
87  * Gets the X-anchoring option at the given index.
88  *
89  * @public @memberof GoSurfaceTool
90  * @version Introduced in firmware 4.0.10.27
91  * @param tool GoSurfaceTool object.
92  * @param index The index of the option list to access.
93  * @return The X-anchoring option at the given index or k32U_MAX if invalid.
94  */
95 GoFx(k32u) GoSurfaceTool_XAnchorOptionAt(GoSurfaceTool tool, kSize index);
96 
97 /**
98  * Gets the current X-anchoring source.
99  *
100  * @public @memberof GoSurfaceTool
101  * @version Introduced in firmware 4.0.10.27
102  * @param tool GoSurfaceTool object.
103  * @return The X-anchoring source or -1 if no source is currently set.
104  */
105 GoFx(k32s) GoSurfaceTool_XAnchor(GoSurfaceTool tool);
106 
107 /**
108  * Sets the X-anchoring source.
109  *
110  * @public @memberof GoSurfaceTool
111  * @version Introduced in firmware 4.0.10.27
112  * @param tool GoSurfaceTool object.
113  * @param id The measurement ID of a valid X-anchoring source.
114  * @return Operation status.
115  */
116 GoFx(kStatus) GoSurfaceTool_SetXAnchor(GoSurfaceTool tool, k32s id);
117 
118 /**
119  * Returns a boolean value representing whether or not a valid X-anchoring source has been set for X-anchoring.
120  *
121  * @public @memberof GoSurfaceTool
122  * @version Introduced in firmware 4.0.10.27
123  * @param tool GoSurfaceTool object.
124  * @return kTRUE if a valid anchoring source is currently set and kFALSE otherwise.
125  */
126 GoFx(kBool) GoSurfaceTool_XAnchorEnabled(GoSurfaceTool tool);
127 
128 /**
129  * Gets the Y-anchoring option list count.
130  *
131  * @public @memberof GoSurfaceTool
132  * @version Introduced in firmware 4.0.10.27
133  * @param tool GoSurfaceTool object.
134  * @return The Y-anchoring option list count.
135  */
136 GoFx(kSize) GoSurfaceTool_YAnchorOptionCount(GoSurfaceTool tool);
137 
138 /**
139  * Gets the Y-anchoring option at the given index.
140  *
141  * @public @memberof GoSurfaceTool
142  * @version Introduced in firmware 4.0.10.27
143  * @param tool GoSurfaceTool object.
144  * @param index The index of the option list to access.
145  * @return The Y-anchoring option at the given index or k32U_MAX if invalid.
146  */
147 GoFx(k32u) GoSurfaceTool_YAnchorOptionAt(GoSurfaceTool tool, kSize index);
148 
149 /**
150  * Gets the current Y-anchoring source.
151  *
152  * @public @memberof GoSurfaceTool
153  * @version Introduced in firmware 4.0.10.27
154  * @param tool GoSurfaceTool object.
155  * @return The Y-anchoring source or -1 if no source is currently set.
156  */
157 GoFx(k32s) GoSurfaceTool_YAnchor(GoSurfaceTool tool);
158 
159 /**
160  * Sets the Y-anchoring source.
161  *
162  * @public @memberof GoSurfaceTool
163  * @version Introduced in firmware 4.0.10.27
164  * @param tool GoSurfaceTool object.
165  * @param id The measurement ID of a valid Y-anchoring source.
166  * @return Operation status.
167  */
168 GoFx(kStatus) GoSurfaceTool_SetYAnchor(GoSurfaceTool tool, k32s id);
169 
170 /**
171  * Returns a boolean value representing whether or not a valid Y-anchoring source has been set for Y-anchoring.
172  *
173  * @public @memberof GoSurfaceTool
174  * @version Introduced in firmware 4.0.10.27
175  * @param tool GoSurfaceTool object.
176  * @return kTRUE if a valid anchoring source is currently set and kFALSE otherwise.
177  */
178 GoFx(kBool) GoSurfaceTool_YAnchorEnabled(GoSurfaceTool tool);
179 
180 /**
181  * Gets the Z-anchoring option list count.
182  *
183  * @public @memberof GoSurfaceTool
184  * @version Introduced in firmware 4.0.10.27
185  * @param tool GoSurfaceTool object.
186  * @return The X-anchoring option list count.
187  */
188 GoFx(kSize) GoSurfaceTool_ZAnchorOptionCount(GoSurfaceTool tool);
189 
190 /**
191  * Gets the Z-anchoring option at the given index.
192  *
193  * @public @memberof GoSurfaceTool
194  * @version Introduced in firmware 4.0.10.27
195  * @param tool GoSurfaceTool object.
196  * @param index The index of the option list to access.
197  * @return The Z-anchoring option at the given index or k32U_MAX if invalid.
198  */
199 GoFx(k32u) GoSurfaceTool_ZAnchorOptionAt(GoSurfaceTool tool, kSize index);
200 
201 /**
202  * Gets the current Z-anchoring source.
203  *
204  * @public @memberof GoSurfaceTool
205  * @version Introduced in firmware 4.0.10.27
206  * @param tool GoSurfaceTool object.
207  * @return The Z-anchoring source or -1 if no source is currently set.
208  */
209 GoFx(k32s) GoSurfaceTool_ZAnchor(GoSurfaceTool tool);
210 
211 /**
212  * Sets the Z-anchoring source.
213  *
214  * @public @memberof GoSurfaceTool
215  * @version Introduced in firmware 4.0.10.27
216  * @param tool GoSurfaceTool object.
217  * @param id The measurement ID of a valid Z-anchoring source.
218  * @return Operation status.
219  */
220 GoFx(kStatus) GoSurfaceTool_SetZAnchor(GoSurfaceTool tool, k32s id);
221 
222 /**
223  * Returns a boolean value representing whether or not a valid Z-anchoring source has been set for Z-anchoring.
224  *
225  * @public @memberof GoSurfaceTool
226  * @version Introduced in firmware 4.0.10.27
227  * @param tool GoSurfaceTool object.
228  * @return kTRUE if a valid anchoring source is currently set and kFALSE otherwise.
229  */
230 GoFx(kBool) GoSurfaceTool_ZAnchorEnabled(GoSurfaceTool tool);
231 
232 /**
233 * Gets the Z-anchoring option list count.
234 *
235 * @public @memberof GoSurfaceTool
236 * @version Introduced in firmware 4.6.1.123
237 * @param tool GoSurfaceTool object.
238 * @return The X-anchoring option list count.
239 */
240 GoFx(kSize) GoSurfaceTool_ZAngleAnchorOptionCount(GoSurfaceTool tool);
241 
242 /**
243 * Gets the ZAngle-anchoring option at the given index.
244 *
245 * @public @memberof GoSurfaceTool
246 * @version Introduced in firmware 4.6.1.123
247 * @param tool GoSurfaceTool object.
248 * @param index The index of the option list to access.
249 * @return The Z-anchoring option at the given index or k32U_MAX if invalid.
250 */
251 GoFx(k32u) GoSurfaceTool_ZAngleAnchorOptionAt(GoSurfaceTool tool, kSize index);
252 
253 /**
254 * Sets the ZAngle-anchoring source.
255 *
256 * @public @memberof GoSurfaceTool
257 * @version Introduced in firmware 4.6.1.123
258 * @param tool GoSurfaceTool object.
259 * @param id The measurement ID of a valid Z-anchoring source.
260 * @return Operation status.
261 */
262 GoFx(kStatus) GoSurfaceTool_SetZAngleAnchor(GoSurfaceTool tool, k32s id);
263 
264 /**
265 * Returns a boolean value representing whether or not a valid ZAngle - anchoring source has been set for ZAngle - anchoring.
266 *
267 * @public @memberof GoSurfaceTool
268 * @version Introduced in firmware 4.6.1.123
269 * @param tool GoSurfaceTool object.
270 * @return kTRUE if a valid anchoring source is currently set and kFALSE otherwise.
271 */
272 GoFx(kBool) GoSurfaceTool_ZAngleAnchorEnabled(GoSurfaceTool tool);
273 
274 /**
275 * Sets the ZAngle-anchoring source.
276 *
277 * @public @memberof GoSurfaceTool
278 * @version Introduced in firmware 4.6.1.123
279 * @param tool GoSurfaceTool object.
280 * @return Operation status.
281 */
282 GoFx(k32s) GoSurfaceTool_ZAngleAnchor(GoSurfaceTool tool);
283 
284 /**
285  * @class GoSurfaceBox
286  * @extends GoSurfaceTool
287  * @ingroup GoSdk-SurfaceTools
288  * @brief Represents a surface bounding box tool.
289  */
290 typedef GoSurfaceTool GoSurfaceBox;
291 
292 /**
293  * Returns the enabled state of Z-rotation.
294  *
295  * @public @memberof GoSurfaceBox
296  * @version Introduced in firmware 4.0.10.27
297  * @param tool GoSurfaceBox object.
298  * @return kTRUE if enabled and kFALSE if disabled.
299  */
300 GoFx(kBool) GoSurfaceBox_ZRotationEnabled(GoSurfaceBox tool);
301 
302 /**
303  * Enables or disables Z-rotation.
304  *
305  * @public @memberof GoSurfaceBox
306  * @version Introduced in firmware 4.0.10.27
307  * @param tool GoSurfaceBox object.
308  * @param enable kTRUE to enable Z-rotation, kFALSE to disable it.
309  * @return Operation status.
310  */
311 GoFx(kStatus) GoSurfaceBox_EnableZRotation(GoSurfaceBox tool, kBool enable);
312 
313 /**
314  * Returns the enabled state of the tool region.
315  *
316  * @public @memberof GoSurfaceBox
317  * @version Introduced in firmware 4.0.10.27
318  * @param tool GoSurfaceBox object.
319  * @return kTRUE if enabled and kFALSE if disabled.
320  */
321 GoFx(kBool) GoSurfaceBox_RegionEnabled(GoSurfaceBox tool);
322 
323 /**
324  * Enables or disables the tool region.
325  *
326  * @public @memberof GoSurfaceBox
327  * @version Introduced in firmware 4.0.10.27
328  * @param tool GoSurfaceBox object.
329  * @param enable kTRUE to enable the tool region, kFALSE to disable it.
330  * @return Operation status.
331  */
332 GoFx(kStatus) GoSurfaceBox_EnableRegion(GoSurfaceBox tool, kBool enable);
333 
334 /**
335  * Gets the surface bounding box region.
336  *
337  * @public @memberof GoSurfaceBox
338  * @version Introduced in firmware 4.0.10.27
339  * @param tool GoSurfaceBox object.
340  * @return A GoRegion3d object.
341  */
342 GoFx(GoRegion3d) GoSurfaceBox_Region(GoSurfaceBox tool);
343 
344 /**
345  * Sets the asymmetry detection type.
346  *
347  * @public @memberof GoSurfaceBox
348  * @version Introduced in firmware 4.4.4.14
349  * @param tool GoSurfaceBox object.
350  * @param value The asymmetry detection type to set.
351  * @return Operation status.
352  */
353 GoFx(kStatus) GoSurfaceBox_SetAsymmetryDetectionType(GoSurfaceBox tool, GoBoxAsymmetryType value);
354 
355 /**
356  * Gets the asymmetry detection type.
357  *
358  * @public @memberof GoSurfaceBox
359  * @version Introduced in firmware 4.4.4.14
360  * @param tool GoSurfaceBox object.
361  * @return The asymmetry detection type.
362  */
363 GoFx(GoBoxAsymmetryType) GoSurfaceBox_AsymmetryDetectionType(GoSurfaceBox tool);
364 
365 /**
366  * Returns a GoSurfaceBox X measurement object.
367  *
368  * @public @memberof GoSurfaceBox
369  * @version Introduced in firmware 4.0.10.27
370  * @param tool GoSurfaceBox object.
371  * @return A GoSurfaceBox X measurement.
372  */
373 GoFx(GoSurfaceBoxX) GoSurfaceBox_XMeasurement(GoSurfaceBox tool);
374 
375 /**
376  * Returns a GoSurfaceBox Y measurement object.
377  *
378  * @public @memberof GoSurfaceBox
379  * @version Introduced in firmware 4.0.10.27
380  * @param tool GoSurfaceBox object.
381  * @return A GoSurfaceBox Y measurement.
382  */
383 GoFx(GoSurfaceBoxY) GoSurfaceBox_YMeasurement(GoSurfaceBox tool);
384 
385 /**
386  * Returns a GoSurfaceBox Z measurement object.
387  *
388  * @public @memberof GoSurfaceBox
389  * @version Introduced in firmware 4.0.10.27
390  * @param tool GoSurfaceBox object.
391  * @return A GoSurfaceBox Z measurement.
392  */
393 GoFx(GoSurfaceBoxZ) GoSurfaceBox_ZMeasurement(GoSurfaceBox tool);
394 
395 /**
396  * Returns a GoSurfaceBox Width measurement object.
397  *
398  * @public @memberof GoSurfaceBox
399  * @version Introduced in firmware 4.0.10.27
400  * @param tool GoSurfaceBox object.
401  * @return A GoSurfaceBox Width measurement.
402  */
403 GoFx(GoSurfaceBoxWidth) GoSurfaceBox_WidthMeasurement(GoSurfaceBox tool);
404 
405 /**
406  * Returns a GoSurfaceBox Length measurement object.
407  *
408  * @public @memberof GoSurfaceBox
409  * @version Introduced in firmware 4.0.10.27
410  * @param tool GoSurfaceBox object.
411  * @return A GoSurfaceBox Length measurement.
412  */
413 GoFx(GoSurfaceBoxLength) GoSurfaceBox_LengthMeasurement(GoSurfaceBox tool);
414 
415 /**
416  * Returns a GoSurfaceBox Height measurement object.
417  *
418  * @public @memberof GoSurfaceBox
419  * @version Introduced in firmware 4.0.10.27
420  * @param tool GoSurfaceBox object.
421  * @return A GoSurfaceBox Height measurement.
422  */
423 GoFx(GoSurfaceBoxHeight) GoSurfaceBox_HeightMeasurement(GoSurfaceBox tool);
424 
425 /**
426  * Returns a GoSurfaceBox Z Angle measurement object.
427  *
428  * @public @memberof GoSurfaceBox
429  * @version Introduced in firmware 4.0.10.27
430  * @param tool GoSurfaceBox object.
431  * @return A GoSurfaceBox Z Angle measurement.
432  */
433 GoFx(GoSurfaceBoxZAngle) GoSurfaceBox_ZAngleMeasurement(GoSurfaceBox tool);
434 
435 /**
436  * Returns a GoSurfaceBox global X measurement object.
437  *
438  * @public @memberof GoSurfaceBox
439  * @version Introduced in firmware 4.0.10.27
440  * @param tool GoSurfaceBox object.
441  * @return A GoSurfaceBox global X measurement.
442  */
443 GoFx(GoSurfaceBoxGlobalX) GoSurfaceBox_GlobalXMeasurement(GoSurfaceBox tool);
444 
445 /**
446  * Returns a GoSurfaceBox global Y measurement object.
447  *
448  * @public @memberof GoSurfaceBox
449  * @version Introduced in firmware 4.0.10.27
450  * @param tool GoSurfaceBox object.
451  * @return A GoSurfaceBox global Y measurement.
452  */
453 GoFx(GoSurfaceBoxGlobalY) GoSurfaceBox_GlobalYMeasurement(GoSurfaceBox tool);
454 
455 /**
456  * Returns a GoSurfaceBox global Z Angle measurement object.
457  *
458  * @public @memberof GoSurfaceBox
459  * @version Introduced in firmware 4.2.4.7
460  * @param tool GoSurfaceBox object.
461  * @return A GoSurfaceBox global Z angle measurement.
462  */
463 GoFx(GoSurfaceBoxGlobalZAngle) GoSurfaceBox_GlobalZAngleMeasurement(GoSurfaceBox tool);
464 
465 /**
466 * Returns a GoSurfaceBoundingBoxCenterPoint center point feature object.
467 *
468 * @public @memberof GoSurfaceBox
469 * @version Introduced in firmware 4.2.4.7
470 * @param tool GoSurfaceBox object.
471 * @return A GoSurfaceBoundingBoxCenterPoint center point feature.
472 */
473 GoFx(GoSurfaceBoundingBoxCenterPoint) GoSurfaceBox_CenterPoint(GoSurfaceBoundingBoxCenterPoint tool);
474 
475 /**
476 * @class GoSurfaceCountersunkHole
477 * @extends GoSurfaceTool
478 * @ingroup GoSdk-SurfaceTools
479 * @brief Represents a Surface Counter Sunk Hole tool.
480 */
481 typedef GoSurfaceTool GoSurfaceCountersunkHole;
482 
483 /**
484  * Sets the shape.
485  *
486  * @public @memberof GoSurfaceCountersunkHole
487  * @version Introduced in firmware 4.3.3.124
488  * @param tool GoSurfaceCountersunkHole object.
489  * @param value The value to set.
490  * @return Operation status.
491  */
492 GoFx(kStatus) GoSurfaceCountersunkHole_SetShape(GoSurfaceCountersunkHole tool, GoSurfaceCountersunkHoleShape value);
493 
494 /**
495  * Returns the shape.
496  *
497  * @public @memberof GoSurfaceCountersunkHole
498  * @version Introduced in firmware 4.3.3.124
499  * @param tool GoSurfaceCountersunkHole object.
500  * @return The nominal bevel angle.
501  */
502 GoFx(GoSurfaceCountersunkHoleShape) GoSurfaceCountersunkHole_Shape(GoSurfaceCountersunkHole tool);
503 
504 /**
505  * Sets the nominal bevel angle.
506  *
507  * @public @memberof GoSurfaceCountersunkHole
508  * @version Introduced in firmware 4.0.10.27
509  * @param tool GoSurfaceCountersunkHole object.
510  * @param value The value to set.
511  * @return Operation status.
512  */
513 GoFx(kStatus) GoSurfaceCountersunkHole_SetNominalBevelAngle(GoSurfaceCountersunkHole tool, k64f value);
514 
515 /**
516  * Returns the nominal bevel angle.
517  *
518  * @public @memberof GoSurfaceCountersunkHole
519  * @version Introduced in firmware 4.0.10.27
520  * @param tool GoSurfaceCountersunkHole object.
521  * @return The nominal bevel angle.
522  */
523 GoFx(k64f) GoSurfaceCountersunkHole_NominalBevelAngle(GoSurfaceCountersunkHole tool);
524 
525 /**
526  * Sets the nominal outer radius.
527  *
528  * @public @memberof GoSurfaceCountersunkHole
529  * @version Introduced in firmware 4.0.10.27
530  * @param tool GoSurfaceCountersunkHole object.
531  * @param value The value to set.
532  * @return Operation status.
533  */
534 GoFx(kStatus) GoSurfaceCountersunkHole_SetNominalOuterRadius(GoSurfaceCountersunkHole tool, k64f value);
535 
536 /**
537  * Returns the nominal outer radius.
538  *
539  * @public @memberof GoSurfaceCountersunkHole
540  * @version Introduced in firmware 4.0.10.27
541  * @param tool GoSurfaceCountersunkHole object.
542  * @return The nominal outer radius.
543  */
544 GoFx(k64f) GoSurfaceCountersunkHole_NominalOuterRadius(GoSurfaceCountersunkHole tool);
545 
546 /**
547  * Sets the nominal inner radius.
548  *
549  * @public @memberof GoSurfaceCountersunkHole
550  * @version Introduced in firmware 4.0.10.27
551  * @param tool GoSurfaceCountersunkHole object.
552  * @param value The value to set.
553  * @return Operation status.
554  */
555 GoFx(kStatus) GoSurfaceCountersunkHole_SetNominalInnerRadius(GoSurfaceCountersunkHole tool, k64f value);
556 
557 /**
558  * Returns the nominal inner radius.
559  *
560  * @public @memberof GoSurfaceCountersunkHole
561  * @version Introduced in firmware 4.0.10.27
562  * @param tool GoSurfaceCountersunkHole object.
563  * @return The nominal inner radius.
564  */
565 GoFx(k64f) GoSurfaceCountersunkHole_NominalInnerRadius(GoSurfaceCountersunkHole tool);
566 
567 /**
568  * Sets the bevel radius offset.
569  *
570  * @public @memberof GoSurfaceCountersunkHole
571  * @version Introduced in firmware 4.0.10.27
572  * @param tool GoSurfaceCountersunkHole object.
573  * @param value The value to set.
574  * @return Operation status.
575  */
576 GoFx(kStatus) GoSurfaceCountersunkHole_SetBevelRadiusOffset(GoSurfaceCountersunkHole tool, k64f value);
577 
578 /**
579  * Returns the bevel radius offset.
580  *
581  * @public @memberof GoSurfaceCountersunkHole
582  * @version Introduced in firmware 4.0.10.27
583  * @param tool GoSurfaceCountersunkHole object.
584  * @return The bevel radius offset.
585  */
586 GoFx(k64f) GoSurfaceCountersunkHole_BevelRadiusOffset(GoSurfaceCountersunkHole tool);
587 
588 /**
589  * Enables or disables partial counter sunk hole detection.
590  *
591  * @public @memberof GoSurfaceCountersunkHole
592  * @version Introduced in firmware 4.0.10.27
593  * @param tool GoSurfaceCountersunkHole object.
594  * @param enable kTRUE to enable partial detection and kFALSE to disable it.
595  * @return Operation status.
596  */
597 GoFx(kStatus) GoSurfaceCountersunkHole_EnablePartialDetection(GoSurfaceCountersunkHole tool, kBool enable);
598 
599 /**
600  * Returns the state of partial detection.
601  *
602  * @public @memberof GoSurfaceCountersunkHole
603  * @version Introduced in firmware 4.0.10.27
604  * @param tool GoSurfaceCountersunkHole object.
605  * @return kTRUE if partial detection is enabled. kFALSE otherwise.
606  */
607 GoFx(kBool) GoSurfaceCountersunkHole_PartialDetectionEnabled(GoSurfaceCountersunkHole tool);
608 
609 /**
610  * Enables or disables the tool region.
611  *
612  * @public @memberof GoSurfaceCountersunkHole
613  * @version Introduced in firmware 4.0.10.27
614  * @param tool GoSurfaceCountersunkHole object.
615  * @param enable kTRUE to enable the tool region and kFALSE to disable it.
616  * @return Operation status.
617  */
618 GoFx(kStatus) GoSurfaceCountersunkHole_EnableRegion(GoSurfaceCountersunkHole tool, kBool enable);
619 
620 /**
621  * Returns the state of the tool region.
622  *
623  * @public @memberof GoSurfaceCountersunkHole
624  * @version Introduced in firmware 4.0.10.27
625  * @param tool GoSurfaceCountersunkHole object.
626  * @return kTRUE if the tool region is enabled. kFALSE otherwise.
627  */
628 GoFx(kBool) GoSurfaceCountersunkHole_RegionEnabled(GoSurfaceCountersunkHole tool);
629 
630 /**
631  * Returns the tool region.
632  *
633  * @public @memberof GoSurfaceCountersunkHole
634  * @version Introduced in firmware 4.0.10.27
635  * @param tool GoSurfaceCountersunkHole object.
636  * @return The tool region.
637  */
638 GoFx(GoRegion3d) GoSurfaceCountersunkHole_Region(GoSurfaceCountersunkHole tool);
639 
640 /**
641  * Enables or disables reference regions.
642  *
643  * @public @memberof GoSurfaceCountersunkHole
644  * @version Introduced in firmware 4.0.10.27
645  * @param tool GoSurfaceCountersunkHole object.
646  * @param enable kTRUE to enable reference regions and kFALSE to disable them.
647  * @return Operation status.
648  */
649 GoFx(kStatus) GoSurfaceCountersunkHole_EnableRefRegions(GoSurfaceCountersunkHole tool, kBool enable);
650 
651 /**
652  * Returns the state of the tool reference regions.
653  *
654  * @public @memberof GoSurfaceCountersunkHole
655  * @version Introduced in firmware 4.0.10.27
656  * @param tool GoSurfaceCountersunkHole object.
657  * @return kTRUE if refrence regions are enabled. kFALSE otherwise.
658  */
659 GoFx(kBool) GoSurfaceCountersunkHole_RefRegionsEnabled(GoSurfaceCountersunkHole tool);
660 
661 /**
662  * Sets the reference region count.
663  *
664  * @public @memberof GoSurfaceCountersunkHole
665  * @version Introduced in firmware 4.0.10.27
666  * @param tool GoSurfaceCountersunkHole object.
667  * @param count The number of references regions to use when enabled.
668  * @return Reference region count.
669  * @see GO_SURFACE_COUNTERSUNK_HOLE_MAX_REF_REGIONS
670 
671  */
672 GoFx(kStatus) GoSurfaceCountersunkHole_SetRefRegionCount(GoSurfaceCountersunkHole tool, kSize count);
673 
674 /**
675  * Returns the reference region count.
676  *
677  * @public @memberof GoSurfaceCountersunkHole
678  * @version Introduced in firmware 4.0.10.27
679  * @param tool GoSurfaceCountersunkHole object.
680  * @return Reference region count.
681  */
682 GoFx(kSize) GoSurfaceCountersunkHole_RefRegionCount(GoSurfaceCountersunkHole tool);
683 
684 /**
685  * Returns the reference region at the given index.
686  *
687  * @public @memberof GoSurfaceCountersunkHole
688  * @version Introduced in firmware 4.0.10.27
689  * @param tool GoSurfaceCountersunkHole object.
690  * @param index The index of the reference region to retrieve.
691  * @return A reference region.
692  */
693 GoFx(GoSurfaceRegion2d) GoSurfaceCountersunkHole_RefRegionAt(GoSurfaceCountersunkHole tool, kSize index);
694 
695 /**
696  * Enables or disables automatic tilt.
697  *
698  * @public @memberof GoSurfaceCountersunkHole
699  * @version Introduced in firmware 4.0.10.27
700  * @param tool GoSurfaceCountersunkHole object.
701  * @param enable kTRUE to enable auto tilt and kFALSE to disable it.
702  * @return Operation status.
703  */
704 GoFx(kStatus) GoSurfaceCountersunkHole_EnableAutoTilt(GoSurfaceCountersunkHole tool, kBool enable);
705 
706 /**
707  * Returns the state of auto tilt.
708  *
709  * @public @memberof GoSurfaceCountersunkHole
710  * @version Introduced in firmware 4.0.10.27
711  * @param tool GoSurfaceCountersunkHole object.
712  * @return kTRUE if auto tilt is enabled. kFALSE otherwise.
713  */
714 GoFx(kBool) GoSurfaceCountersunkHole_AutoTiltEnabled(GoSurfaceCountersunkHole tool);
715 
716 /**
717  * Sets the tilt X angle.
718  *
719  * @public @memberof GoSurfaceCountersunkHole
720  * @version Introduced in firmware 4.0.10.27
721  * @param tool GoSurfaceCountersunkHole object.
722  * @param value The value to set.
723  * @return Operation status.
724  */
725 GoFx(kStatus) GoSurfaceCountersunkHole_SetTiltXAngle(GoSurfaceCountersunkHole tool, k64f value);
726 
727 /**
728  * Returns the tilt X angle value.
729  *
730  * @public @memberof GoSurfaceCountersunkHole
731  * @version Introduced in firmware 4.0.10.27
732  * @param tool GoSurfaceCountersunkHole object.
733  * @return Tilt X angle value.
734  */
735 GoFx(k64f) GoSurfaceCountersunkHole_TiltXAngle(GoSurfaceCountersunkHole tool);
736 
737 /**
738  * Sets the tilt Y angle.
739  *
740  * @public @memberof GoSurfaceCountersunkHole
741  * @version Introduced in firmware 4.0.10.27
742  * @param tool GoSurfaceCountersunkHole object.
743  * @param value The value to set.
744  * @return Operation status.
745  */
746 GoFx(kStatus) GoSurfaceCountersunkHole_SetTiltYAngle(GoSurfaceCountersunkHole tool, k64f value);
747 
748 /**
749  * Returns the tilt Y angle value.
750  *
751  * @public @memberof GoSurfaceCountersunkHole
752  * @version Introduced in firmware 4.0.10.27
753  * @param tool GoSurfaceCountersunkHole object.
754  * @return Tilt Y angle value.
755  */
756 GoFx(k64f) GoSurfaceCountersunkHole_TiltYAngle(GoSurfaceCountersunkHole tool);
757 
758 /**
759  * Enables or disables curve fitting.
760  *
761  * @public @memberof GoSurfaceCountersunkHole
762  * @version Introduced in firmware 4.1.3.106
763  * @param tool GoSurfaceCountersunkHole object.
764  * @param enable kTRUE to enable curve fitting and kFALSE to disable it.
765  * @return Operation status.
766  */
767 GoFx(kStatus) GoSurfaceCountersunkHole_EnableCurveFit(GoSurfaceCountersunkHole tool, kBool enable);
768 
769 
770 /**
771  * Returns the state of auto tilt.
772  *
773  * @public @memberof GoSurfaceCountersunkHole
774  * @version Introduced in firmware 4.1.3.106
775  * @param tool GoSurfaceCountersunkHole object.
776  * @return kTRUE if curve fitting is enabled. kFALSE otherwise.
777  */
778 GoFx(kBool) GoSurfaceCountersunkHole_CurveFitEnabled(GoSurfaceCountersunkHole tool);
779 
780 /**
781  * Sets the curve orientation angle.
782  *
783  * @public @memberof GoSurfaceCountersunkHole
784  * @version Introduced in firmware 4.1.3.106
785  * @param tool GoSurfaceCountersunkHole object.
786  * @param value The value to set.
787  * @return Operation status.
788  */
789 GoFx(kStatus) GoSurfaceCountersunkHole_SetCurveOrientation(GoSurfaceCountersunkHole tool, k64f value);
790 
791 /**
792  * Returns the curve orientation angle value.
793  *
794  * @public @memberof GoSurfaceCountersunkHole
795  * @version Introduced in firmware 4.1.3.106
796  * @param tool GoSurfaceCountersunkHole object.
797  * @return Curve orientation angle value.
798  */
799 GoFx(k64f) GoSurfaceCountersunkHole_CurveOrientation(GoSurfaceCountersunkHole tool);
800 
801 /**
802  * Sets the plane fit range.
803  *
804  * @public @memberof GoSurfaceCountersunkHole
805  * @version Introduced in firmware 4.5.3.57
806  * @param tool GoSurfaceCountersunkHole object.
807  * @param value The value to set.
808  * @return Operation status.
809  */
810 GoFx(kStatus) GoSurfaceCountersunkHole_SetPlaneFitRange(GoSurfaceCountersunkHole tool, k64f value);
811 
812 /**
813  * Gets the enabled state of the plane fit range.
814  *
815  * @public @memberof GoSurfaceCountersunkHole
816  * @version Introduced in firmware 4.5.3.57
817  * @param tool GoSurfaceCountersunkHole object.
818  * @return kTRUE if enabled and kFALSE if disabled.
819  */
820 GoFx(kBool) GoSurfaceCountersunkHole_PlaneFitRangeEnabled(GoSurfaceCountersunkHole tool);
821 
822 /**
823  * Sets the enabled state of the plane fit range.
824  *
825  * @public @memberof GoSurfaceCountersunkHole
826  * @version Introduced in firmware 4.5.3.57
827  * @param tool GoSurfaceCountersunkHole object.
828  * @param enable kTRUE to enable it and kFALSE to disable it.
829  * @return Operation status.
830  */
831 GoFx(kStatus) GoSurfaceCountersunkHole_EnablePlaneFitRange(GoSurfaceCountersunkHole tool, kBool enable);
832 
833 /**
834  * Returns the plane fit range.
835  *
836  * @public @memberof GoSurfaceCountersunkHole
837  * @version Introduced in firmware 4.5.3.57
838  * @param tool GoSurfaceCountersunkHole object.
839  * @return Plane fit range value.
840  */
841 GoFx(k64f) GoSurfaceCountersunkHole_PlaneFitRange(GoSurfaceCountersunkHole tool);
842 
843 /**
844  * Returns a GoSurfaceCountersunkHole tool X position measurement object.
845  *
846  * @public @memberof GoSurfaceCountersunkHole
847  * @version Introduced in firmware 4.0.10.27
848  * @param tool GoSurfaceCountersunkHole object.
849  * @return A GoSurfaceCountersunkHole X position measurement.
850  */
851 GoFx(GoSurfaceCountersunkHoleX) GoSurfaceCountersunkHole_XMeasurement(GoSurfaceCountersunkHole tool);
852 
853 /**
854  * Returns a GoSurfaceCountersunkHole tool Y position measurement object.
855  *
856  * @public @memberof GoSurfaceCountersunkHole
857  * @version Introduced in firmware 4.0.10.27
858  * @param tool GoSurfaceCountersunkHole object.
859  * @return A GoSurfaceCountersunkHole Y position measurement.
860  */
861 GoFx(GoSurfaceCountersunkHoleY) GoSurfaceCountersunkHole_YMeasurement(GoSurfaceCountersunkHole tool);
862 
863 /**
864  * Returns a GoSurfaceCountersunkHole tool Z position measurement object.
865  *
866  * @public @memberof GoSurfaceCountersunkHole
867  * @version Introduced in firmware 4.0.10.27
868  * @param tool GoSurfaceCountersunkHole object.
869  * @return A GoSurfaceCountersunkHole Z position measurement.
870  */
871 GoFx(GoSurfaceCountersunkHoleZ) GoSurfaceCountersunkHole_ZMeasurement(GoSurfaceCountersunkHole tool);
872 
873 /**
874  * Returns a GoSurfaceCountersunkHole tool Outer Radius measurement object.
875  *
876  * @public @memberof GoSurfaceCountersunkHole
877  * @version Introduced in firmware 4.0.10.27
878  * @param tool GoSurfaceCountersunkHole object.
879  * @return A GoSurfaceCountersunkHoleOuterRadius Outer Radius measurement.
880  */
881 GoFx(GoSurfaceCountersunkHoleOuterRadius) GoSurfaceCountersunkHole_OuterRadiusMeasurement(GoSurfaceCountersunkHole tool);
882 
883 /**
884  * Returns a GoSurfaceCountersunkHole tool Depth measurement object.
885  *
886  * @public @memberof GoSurfaceCountersunkHole
887  * @version Introduced in firmware 4.0.10.27
888  * @param tool GoSurfaceCountersunkHole object.
889  * @return A GoSurfaceCoGoSurfaceCountersunkHoleDepthuntersunkHole Depth measurement.
890  */
891 GoFx(GoSurfaceCountersunkHoleDepth) GoSurfaceCountersunkHole_DepthMeasurement(GoSurfaceCountersunkHole tool);
892 
893 /**
894  * Returns a GoSurfaceCountersunkHole tool counterbore depth measurement object.
895  *
896  * @public @memberof GoSurfaceCountersunkHole
897  * @version Introduced in firmware 4.3.3.124
898  * @param tool GoSurfaceCountersunkHole object.
899  * @return A GoSurfaceCountersunkHoleCounterboreDepth counterbore depth measurement.
900  */
901 GoFx(GoSurfaceCountersunkHoleCounterboreDepth) GoSurfaceCountersunkHole_CounterboreDepth(GoSurfaceCountersunkHole tool);
902 
903 /**
904  * Returns a GoSurfaceCountersunkHole tool Bevel Radius measurement object.
905  *
906  * @public @memberof GoSurfaceCountersunkHole
907  * @version Introduced in firmware 4.0.10.27
908  * @param tool GoSurfaceCountersunkHole object.
909  * @return A GoSurfaceCountersunkHoleBevelRadius Bevel Radius measurement.
910  */
911 GoFx(GoSurfaceCountersunkHoleBevelRadius) GoSurfaceCountersunkHole_BevelRadiusMeasurement(GoSurfaceCountersunkHole tool);
912 
913 /**
914  * Returns a GoSurfaceCountersunkHole tool Bevel Angle measurement object.
915  *
916  * @public @memberof GoSurfaceCountersunkHole
917  * @version Introduced in firmware 4.0.10.27
918  * @param tool GoSurfaceCountersunkHole object.
919  * @return A GoSurfaceCountersunkHoleBevelAngle Bevel Angle measurement.
920  */
921 GoFx(GoSurfaceCountersunkHoleBevelAngle) GoSurfaceCountersunkHole_BevelAngleMeasurement(GoSurfaceCountersunkHole tool);
922 
923 /**
924  * Returns a GoSurfaceCountersunkHole tool X Angle measurement object.
925  *
926  * @public @memberof GoSurfaceCountersunkHole
927  * @version Introduced in firmware 4.0.10.27
928  * @param tool GoSurfaceCountersunkHole object.
929  * @return A GoSurfaceCountersunkHoleXAngle X angle measurement.
930  */
931 GoFx(GoSurfaceCountersunkHoleXAngle) GoSurfaceCountersunkHole_XAngleMeasurement(GoSurfaceCountersunkHole tool);
932 
933 /**
934  * Returns a GoSurfaceCountersunkHole tool Y Angle measurement object.
935  *
936  * @public @memberof GoSurfaceCountersunkHole
937  * @version Introduced in firmware 4.0.10.27
938  * @param tool GoSurfaceCountersunkHole object.
939  * @return A GoSurfaceCountersunkHoleYAngle Y angle measurement.
940  */
941 GoFx(GoSurfaceCountersunkHoleYAngle) GoSurfaceCountersunkHole_YAngleMeasurement(GoSurfaceCountersunkHole tool);
942 
943 /**
944  * Returns a GoSurfaceCountersunkHole tool axis tilt measurement object.
945  *
946  * @public @memberof GoSurfaceCountersunkHole
947  * @version Introduced in firmware 4.5.3.57
948  * @param tool GoSurfaceCountersunkHole object.
949  * @return A GoSurfaceCountersunkHoleAxisTilt axis tilt measurement.
950  */
951 GoFx(GoSurfaceCountersunkHoleAxisTilt) GoSurfaceCountersunkHole_AxisTilt(GoSurfaceCountersunkHole tool);
952 
953 /**
954  * Returns a GoSurfaceCountersunkHole tool axis orientation measurement object.
955  *
956  * @public @memberof GoSurfaceCountersunkHole
957  * @version Introduced in firmware 4.5.3.57
958  * @param tool GoSurfaceCountersunkHole object.
959  * @return A GoSurfaceCountersunkHoleAxisOrientation axis orientation measurement.
960  */
961 GoFx(GoSurfaceCountersunkHoleAxisOrientation) GoSurfaceCountersunkHole_AxisOrientation(GoSurfaceCountersunkHole tool);
962 
963 /**
964 * Returns a GoSurfaceCountersunkHoleCenterPoint tool center point feature.
965 *
966 * @public @memberof GoSurfaceCountersunkHoleCenterPoint
967 * @version Introduced in firmware 4.5.3.57
968 * @param tool GoSurfaceCountersunkHole object.
969 * @return A GoSurfaceCountersunkHoleCenterPoint center point feature.
970 */
971 GoFx(GoSurfaceCountersunkHoleCenterPoint) GoSurfaceCountersunkHole_CenterPoint(GoSurfaceCountersunkHoleCenterPoint tool);
972 
973 
974 
975 
976 /**
977  * @class GoSurfaceDim
978  * @extends GoSurfaceTool
979  * @ingroup GoSdk-SurfaceTools
980  * @brief Represents a Surface dimension tool.
981  */
982 typedef GoSurfaceTool GoSurfaceDim;
983 
984 /**
985  * Gets the reference Surface feature.
986  *
987  * @public @memberof GoSurfaceDim
988  * @version Introduced in firmware 4.4.4.14
989  * @param tool GoSurfaceDim object.
990  * @return The reference Surface feature object.
991  */
992 GoFx(GoSurfaceFeature) GoSurfaceDim_RefFeature(GoSurfaceDim tool);
993 
994 
995 /**
996  * Gets the non-reference Surface feature.
997  *
998  * @public @memberof GoSurfaceDim
999  * @version Introduced in firmware 4.4.4.14
1000  * @param tool GoSurfaceDim object.
1001  * @return The non-reference Surface feature object.
1002  */
1003 GoFx(GoSurfaceFeature) GoSurfaceDim_Feature(GoSurfaceDim tool);
1004 
1005 /**
1006  * Returns a GoSurfaceDim Width measurement object.
1007  *
1008  * @public @memberof GoSurfaceDim
1009  * @version Introduced in firmware 4.4.4.14
1010  * @param tool GoSurfaceDim object.
1011  * @return A GoSurfaceDimWidth measurement.
1012  */
1013 GoFx(GoSurfaceDimWidth) GoSurfaceDim_WidthMeasurement(GoSurfaceDim tool);
1014 
1015 /**
1016  * Returns a GoSurfaceDim Height measurement object.
1017  *
1018  * @public @memberof GoSurfaceDim
1019  * @version Introduced in firmware 4.4.4.14
1020  * @param tool GoSurfaceDim object.
1021  * @return A GoSurfaceDimHeight measurement.
1022  */
1023 GoFx(GoSurfaceDimHeight) GoSurfaceDim_HeightMeasurement(GoSurfaceDim tool);
1024 
1025 /**
1026  * Returns a GoSurfaceDim Length measurement object.
1027  *
1028  * @public @memberof GoSurfaceDim
1029  * @version Introduced in firmware 4.4.4.14
1030  * @param tool GoSurfaceDim object.
1031  * @return A GoSurfaceDimLength measurement.
1032  */
1033 GoFx(GoSurfaceDimLength) GoSurfaceDim_LengthMeasurement(GoSurfaceDim tool);
1034 
1035 /**
1036  * Returns a GoSurfaceDim Distance measurement object.
1037  *
1038  * @public @memberof GoSurfaceDim
1039  * @version Introduced in firmware 4.4.4.14
1040  * @param tool GoSurfaceDim object.
1041  * @return A GoSurfaceDimDistance measurement.
1042  */
1043 GoFx(GoSurfaceDimDistance) GoSurfaceDim_DistanceMeasurement(GoSurfaceDim tool);
1044 
1045 /**
1046  * Returns a GoSurfaceDim Plane Distance measurement object.
1047  *
1048  * @public @memberof GoSurfaceDim
1049  * @version Introduced in firmware 4.4.4.14
1050  * @param tool GoSurfaceDim object.
1051  * @return A GoSurfaceDimPlaneDistance measurement.
1052  */
1053 GoFx(GoSurfaceDimPlaneDistance) GoSurfaceDim_PlaneDistanceMeasurement(GoSurfaceDim tool);
1054 
1055 /**
1056  * Returns a GoSurfaceDim Center X measurement object.
1057  *
1058  * @public @memberof GoSurfaceDim
1059  * @version Introduced in firmware 4.4.4.14
1060  * @param tool GoSurfaceDim object.
1061  * @return A GoSurfaceDimCenterX measurement.
1062  */
1063 GoFx(GoSurfaceDimCenterX) GoSurfaceDim_CenterXMeasurement(GoSurfaceDim tool);
1064 
1065 /**
1066  * Returns a GoSurfaceDim Center Y measurement object.
1067  *
1068  * @public @memberof GoSurfaceDim
1069  * @version Introduced in firmware 4.4.4.14
1070  * @param tool GoSurfaceDim object.
1071  * @return A GoSurfaceDimCenterY measurement.
1072  */
1073 GoFx(GoSurfaceDimCenterY) GoSurfaceDim_CenterYMeasurement(GoSurfaceDim tool);
1074 
1075 /**
1076 * Returns a GoSurfaceDim Center Z measurement object.
1077 *
1078 * @public @memberof GoSurfaceDim
1079 * @version Introduced in firmware 4.4.4.14
1080 * @param tool GoSurfaceDim object.
1081 * @return A GoSurfaceDimCenterZ measurement.
1082 */
1083 GoFx(GoSurfaceDimCenterZ) GoSurfaceDim_CenterZMeasurement(GoSurfaceDim tool);
1084 
1085 /**
1086 * Returns a GoSurfaceDim center point feature object.
1087 *
1088 * @public @memberof GoSurfaceDim
1089 * @version Introduced in firmware 4.4.4.14
1090 * @param tool GoSurfaceDim object.
1091 * @return A GoSurfaceDimensionCenterPoint measurement.
1092 */
1093 GoFx(GoSurfaceDimensionCenterPoint) GoSurfaceDim_CenterPoint(GoSurfaceDimensionCenterPoint tool);
1094 
1095 /**
1096  * @class GoSurfaceEllipse
1097  * @extends GoSurfaceTool
1098  * @ingroup GoSdk-SurfaceTools
1099  * @brief Represents a surface ellipse tool.
1100  */
1101 typedef GoSurfaceTool GoSurfaceEllipse;
1102 
1103 /**
1104  * Enables or disables the tool region.
1105  *
1106  * @public @memberof GoSurfaceEllipse
1107  * @version Introduced in firmware 4.0.10.27
1108  * @param tool GoSurfaceEllipse object.
1109  * @param enable kTRUE to enable the tool region, kFALSE to disable it.
1110  * @return Operation status.
1111  */
1112 GoFx(kStatus) GoSurfaceEllipse_EnableRegion(GoSurfaceEllipse tool, kBool enable);
1113 
1114 /**
1115  * Returns the enabled state of the tool region.
1116  *
1117  * @public @memberof GoSurfaceEllipse
1118  * @version Introduced in firmware 4.0.10.27
1119  * @param tool GoSurfaceEllipse object.
1120  * @return kTRUE if enabled and kFALSE if disabled.
1121  */
1122 GoFx(kBool) GoSurfaceEllipse_RegionEnabled(GoSurfaceEllipse tool);
1123 
1124 /**
1125  * Gets the tool region.
1126  *
1127  * @public @memberof GoSurfaceEllipse
1128  * @version Introduced in firmware 4.0.10.27
1129  * @param tool GoSurfaceEllipse object.
1130  * @return A GoRegion3d object.
1131  */
1132 GoFx(GoRegion3d) GoSurfaceEllipse_Region(GoSurfaceEllipse tool);
1133 
1134 /**
1135  * Sets the asymmetry detection type.
1136  *
1137  * @public @memberof GoSurfaceEllipse
1138  * @version Introduced in firmware 4.4.4.14
1139  * @param tool GoSurfaceEllipse object.
1140  * @param value The asymmetry detection type to set.
1141  * @return Operation status.
1142  */
1143 GoFx(kStatus) GoSurfaceEllipse_SetAsymmetryDetectionType(GoSurfaceEllipse tool, GoEllipseAsymmetryType value);
1144 
1145 /**
1146  * Gets the asymmetry detection type.
1147  *
1148  * @public @memberof GoSurfaceEllipse
1149  * @version Introduced in firmware 4.4.4.14
1150  * @param tool GoSurfaceEllipse object.
1151  * @return The asymmetry detection type.
1152  */
1153 GoFx(GoEllipseAsymmetryType) GoSurfaceEllipse_AsymmetryDetectionType(GoSurfaceEllipse tool);
1154 
1155 /**
1156  * Returns a GoSurfaceEllipse Major measurement object.
1157  *
1158  * @public @memberof GoSurfaceEllipse
1159  * @version Introduced in firmware 4.0.10.27
1160  * @param tool GoSurfaceEllipse object.
1161  * @return A GoSurfaceEllipse Major measurement.
1162  */
1163 GoFx(GoSurfaceEllipseMajor) GoSurfaceEllipse_MajorMeasurement(GoSurfaceEllipse tool);
1164 
1165 /**
1166  * Returns a GoSurfaceEllipse Minor measurement object.
1167  *
1168  * @public @memberof GoSurfaceEllipse
1169  * @version Introduced in firmware 4.0.10.27
1170  * @param tool GoSurfaceEllipse object.
1171  * @return A GoSurfaceEllipse Minor measurement.
1172  */
1173 GoFx(GoSurfaceEllipseMinor) GoSurfaceEllipse_MinorMeasurement(GoSurfaceEllipse tool);
1174 
1175 /**
1176  * Returns a GoSurfaceEllipse Ratio measurement object.
1177  *
1178  * @public @memberof GoSurfaceEllipse
1179  * @version Introduced in firmware 4.0.10.27
1180  * @param tool GoSurfaceEllipse object.
1181  * @return A GoSurfaceEllipse Ratio measurement.
1182  */
1183 GoFx(GoSurfaceEllipseRatio) GoSurfaceEllipse_RatioMeasurement(GoSurfaceEllipse tool);
1184 
1185 /**
1186  * Returns a GoSurfaceEllipse Z Angle measurement object.
1187  *
1188  * @public @memberof GoSurfaceEllipse
1189  * @version Introduced in firmware 4.0.10.27
1190  * @param tool GoSurfaceEllipse object.
1191  * @return A GoSurfaceEllipse Z Angle measurement.
1192  */
1193 GoFx(GoSurfaceEllipseZAngle) GoSurfaceEllipse_ZAngleMeasurement(GoSurfaceEllipse tool);
1194 
1195 /**
1196 * Returns a GoSurfaceEllipse point feature.
1197 *
1198 * @public @memberof GoSurfaceEllipse
1199 * @version Introduced in firmware 4.0.10.27
1200 * @param tool GoSurfaceEllipse object.
1201 * @return A GoSurfaceEllipseCenterPoint point feature
1202 */
1203 GoFx(GoSurfaceEllipseCenterPoint) GoSurfaceEllipse_CenterPoint(GoSurfaceEllipse tool);
1204 
1205 /**
1206 * Returns a GoSurfaceEllipse major axis line feature.
1207 *
1208 * @public @memberof GoSurfaceEllipse
1209 * @version Introduced in firmware 4.0.10.27
1210 * @param tool GoSurfaceEllipse object.
1211 * @return A GoSurfaceEllipseMajorAxisLine axis line feature..
1212 */
1213 GoFx(GoSurfaceEllipseMajorAxisLine) GoSurfaceEllipse_MajorAxisLine(GoSurfaceEllipse tool);
1214 
1215 /**
1216 * Returns a GoSurfaceEllipse major axis line feature.
1217 *
1218 * @public @memberof GoSurfaceEllipse
1219 * @version Introduced in firmware 4.0.10.27
1220 * @param tool GoSurfaceEllipse object.
1221 * @return A GoSurfaceEllipseMinorAxisLine major axis line feature.
1222 */
1223 GoFx(GoSurfaceEllipseMinorAxisLine) GoSurfaceEllipse_MinorAxisLine(GoSurfaceEllipse tool);
1224 
1225 
1226 /**
1227  * @class GoSurfaceHole
1228  * @extends GoSurfaceTool
1229  * @ingroup GoSdk-SurfaceTools
1230  * @brief Represents a surface hole tool.
1231  */
1232 typedef GoSurfaceTool GoSurfaceHole;
1233 
1234 /**
1235  * Gets the current nominal radius value.
1236  *
1237  * @public @memberof GoSurfaceHole
1238  * @version Introduced in firmware 4.0.10.27
1239  * @param tool GoSurfaceHole object.
1240  * @return The nominal radius value.
1241  */
1242 GoFx(k64f) GoSurfaceHole_NominalRadius(GoSurfaceHole tool);
1243 
1244 /**
1245  * Sets the nominal radius value.
1246  *
1247  * @public @memberof GoSurfaceHole
1248  * @version Introduced in firmware 4.0.10.27
1249  * @param tool GoSurfaceHole object.
1250  * @param nominalRadius Nominal radius value to set.
1251  * @return Operation status.
1252  */
1253 GoFx(kStatus) GoSurfaceHole_SetNominalRadius(GoSurfaceHole tool, k64f nominalRadius);
1254 
1255 /**
1256  * Gets the current radius tolerance value.
1257  *
1258  * @public @memberof GoSurfaceHole
1259  * @version Introduced in firmware 4.0.10.27
1260  * @param tool GoSurfaceHole object.
1261  * @return The radius tolerance value.
1262  */
1263 GoFx(k64f) GoSurfaceHole_RadiusTolerance(GoSurfaceHole tool);
1264 
1265 /**
1266  * Sets the radius tolerance value.
1267  *
1268  * @public @memberof GoSurfaceHole
1269  * @version Introduced in firmware 4.0.10.27
1270  * @param tool GoSurfaceHole object.
1271  * @param radiusTolerance The radius tolerance value to set.
1272  * @return Operation status.
1273  */
1274 GoFx(kStatus) GoSurfaceHole_SetRadiusTolerance(GoSurfaceHole tool, k64f radiusTolerance);
1275 
1276 /**
1277  * Gets the enabled state of partial detection.
1278  *
1279  * @public @memberof GoSurfaceHole
1280  * @version Introduced in firmware 4.0.10.27
1281  * @param tool GoSurfaceHole object.
1282  * @return kTRUE if enabled and kFALSE if disabled.
1283  */
1284 GoFx(kBool) GoSurfaceHole_PartialDetectionEnabled(GoSurfaceHole tool);
1285 
1286 /**
1287  * Sets the enabled state of partial detection.
1288  *
1289  * @public @memberof GoSurfaceHole
1290  * @version Introduced in firmware 4.0.10.27
1291  * @param tool GoSurfaceHole object.
1292  * @param enable kTRUE to enable partial detection and kFALSE to disable it.
1293  * @return Operation status.
1294  */
1295 GoFx(kStatus) GoSurfaceHole_EnablePartialDetection(GoSurfaceHole tool, kBool enable);
1296 
1297 /**
1298  * Gets the enabled state of the tool region.
1299  *
1300  * @public @memberof GoSurfaceHole
1301  * @version Introduced in firmware 4.0.10.27
1302  * @param tool GoSurfaceHole object.
1303  * @return kTRUE if enabled and kFALSE if disabled.
1304  */
1305 GoFx(kBool) GoSurfaceHole_RegionEnabled(GoSurfaceHole tool);
1306 
1307 /**
1308  * Sets the enabled state of the tool region.
1309  *
1310  * @public @memberof GoSurfaceHole
1311  * @version Introduced in firmware 4.0.10.27
1312  * @param tool GoSurfaceHole object.
1313  * @param enable kTRUE to enable the tool region and kFALSE to disable it.
1314  * @return Operation status.
1315  */
1316 GoFx(kStatus) GoSurfaceHole_EnableRegion(GoSurfaceHole tool, kBool enable);
1317 
1318 /**
1319  * Returns the tool's region object.
1320  *
1321  * @public @memberof GoSurfaceHole
1322  * @version Introduced in firmware 4.0.10.27
1323  * @param tool GoSurfaceHole object.
1324  * @return A GoRegion3d object.
1325  */
1326 GoFx(GoRegion3d) GoSurfaceHole_Region(GoSurfaceHole tool);
1327 
1328 /**
1329  * Gets the enabled state of reference regions.
1330  *
1331  * @public @memberof GoSurfaceHole
1332  * @version Introduced in firmware 4.0.10.27
1333  * @param tool GoSurfaceHole object.
1334  * @return kTRUE if enabled and kFALSE if disabled.
1335  */
1336 GoFx(kBool) GoSurfaceHole_RefRegionsEnabled(GoSurfaceHole tool);
1337 
1338 /**
1339  * Sets the enabled state of reference regions.
1340  *
1341  * @public @memberof GoSurfaceHole
1342  * @version Introduced in firmware 4.0.10.27
1343  * @param tool GoSurfaceHole object.
1344  * @param enable kTRUE to enable reference regions and kFALSE to disable it.
1345  * @return Operation status.
1346  */
1347 GoFx(kStatus) GoSurfaceHole_EnableRefRegions(GoSurfaceHole tool, kBool enable);
1348 
1349 /**
1350  * Gets the reference region count.
1351  *
1352  * @public @memberof GoSurfaceHole
1353  * @version Introduced in firmware 4.0.10.27
1354  * @param tool GoSurfaceHole object.
1355  * @return The reference region count.
1356  */
1357 GoFx(kSize) GoSurfaceHole_RefRegionCount(GoSurfaceHole tool);
1358 
1359 /**
1360  * Sets the reference region count.
1361  *
1362  * @public @memberof GoSurfaceHole
1363  * @version Introduced in firmware 4.0.10.27
1364  * @param tool GoSurfaceHole object.
1365  * @param count The reference region count.
1366  * @return Operation status.
1367  * @see GO_SURFACE_HOLE_MAX_REF_REGIONS
1368  */
1369 GoFx(kStatus) GoSurfaceHole_SetRefRegionCount(GoSurfaceHole tool, kSize count);
1370 
1371 /**
1372  * Gets a reference region object at the given index.
1373  *
1374  * @public @memberof GoSurfaceHole
1375  * @version Introduced in firmware 4.0.10.27
1376  * @param tool GoSurfaceHole object.
1377  * @param index The index with which to retrieve a reference region.
1378  * @return A GoSurfaceRegion2d object.
1379  * @see GoSurfaceHole_RefRegionCount
1380  */
1381 GoFx(GoSurfaceRegion2d) GoSurfaceHole_RefRegionAt(GoSurfaceHole tool, kSize index);
1382 
1383 /**
1384  * Gets the enabled state of auto-tilt.
1385  *
1386  * @public @memberof GoSurfaceHole
1387  * @version Introduced in firmware 4.0.10.27
1388  * @param tool GoSurfaceHole object.
1389  * @return kTRUE if enabled and kFALSE if disabled.
1390  */
1391 GoFx(kBool) GoSurfaceHole_AutoTiltEnabled(GoSurfaceHole tool);
1392 
1393 /**
1394  * Sets the enabled state of auto-tilt.
1395  *
1396  * @public @memberof GoSurfaceHole
1397  * @version Introduced in firmware 4.0.10.27
1398  * @param tool GoSurfaceHole object.
1399  * @param enable kTRUE to enable it and kFALSE to disable it.
1400  * @return Operation status.
1401  */
1402 GoFx(kStatus) GoSurfaceHole_EnableAutoTilt(GoSurfaceHole tool, kBool enable);
1403 
1404 /**
1405  * Gets the tilt X-angle value.
1406  *
1407  * @public @memberof GoSurfaceHole
1408  * @version Introduced in firmware 4.0.10.27
1409  * @param tool GoSurfaceHole object.
1410  * @return Tilt X-angle value.
1411  */
1412 GoFx(k64f) GoSurfaceHole_TiltXAngle(GoSurfaceHole tool);
1413 
1414 /**
1415  * Sets the tilt X-angle value.
1416  *
1417  * @public @memberof GoSurfaceHole
1418  * @version Introduced in firmware 4.0.10.27
1419  * @param tool GoSurfaceHole object.
1420  * @param value The tilt X-angle value to set.
1421  * @return Operation status.
1422  */
1423 GoFx(kStatus) GoSurfaceHole_SetTiltXAngle(GoSurfaceHole tool, k64f value);
1424 
1425 /**
1426  * Gets the tilt Y-angle value.
1427  *
1428  * @public @memberof GoSurfaceHole
1429  * @version Introduced in firmware 4.0.10.27
1430  * @param tool GoSurfaceHole object.
1431  * @return Tilt Y-angle value.
1432  */
1433 GoFx(k64f) GoSurfaceHole_TiltYAngle(GoSurfaceHole tool);
1434 
1435 /**
1436  * Sets the tilt Y-angle value.
1437  *
1438  * @public @memberof GoSurfaceHole
1439  * @version Introduced in firmware 4.0.10.27
1440  * @param tool GoSurfaceHole object.
1441  * @param value The tilt Y-angle value to set.
1442  * @return Operation status.
1443  */
1444 GoFx(kStatus) GoSurfaceHole_SetTiltYAngle(GoSurfaceHole tool, k64f value);
1445 
1446 /**
1447  * Gets the enabled state of the depth limit.
1448  *
1449  * @public @memberof GoSurfaceHole
1450  * @version Introduced in firmware 4.3.3.124
1451  * @param tool GoSurfaceHole object.
1452  * @return kTRUE if enabled and kFALSE if disabled.
1453  */
1454 GoFx(kBool) GoSurfaceHole_DepthLimitEnabled(GoSurfaceHole tool);
1455 
1456 /**
1457  * Sets the enabled state of the depth limit.
1458  *
1459  * @public @memberof GoSurfaceHole
1460  * @version Introduced in firmware 4.3.3.124
1461  * @param tool GoSurfaceHole object.
1462  * @param enable kTRUE to enable it and kFALSE to disable it.
1463  * @return Operation status.
1464  */
1465 GoFx(kStatus) GoSurfaceHole_EnableDepthLimit(GoSurfaceHole tool, kBool enable);
1466 
1467 /**
1468  * Gets the depth limit value.
1469  *
1470  * @public @memberof GoSurfaceHole
1471  * @version Introduced in firmware 4.3.3.124
1472  * @param tool GoSurfaceHole object.
1473  * @return Depth limit value.
1474 
1475  */
1476 GoFx(k64f) GoSurfaceHole_DepthLimit(GoSurfaceHole tool);
1477 
1478 /**
1479  * Sets the depth limit value.
1480  *
1481  * @public @memberof GoSurfaceHole
1482  * @version Introduced in firmware 4.3.3.124
1483  * @param tool GoSurfaceHole object.
1484  * @param value The depth limit value to set.
1485  * @return Operation status.
1486  * @see GoSurfaceHole_DepthLimitEnabled, GoSurfaceHole_EnableDepthLimit
1487  */
1488 GoFx(kStatus) GoSurfaceHole_SetDepthLimit(GoSurfaceHole tool, k64f value);
1489 
1490 /**
1491  * Returns a GoSurfaceHole X measurement object.
1492  *
1493  * @public @memberof GoSurfaceHole
1494  * @version Introduced in firmware 4.0.10.27
1495  * @param tool GoSurfaceHole object.
1496  * @return A GoSurfaceHoleX X measurement.
1497  */
1498 GoFx(GoSurfaceHoleX) GoSurfaceHole_XMeasurement(GoSurfaceHole tool);
1499 
1500 /**
1501  * Returns a GoSurfaceHole Y measurement object.
1502  *
1503  * @public @memberof GoSurfaceHole
1504  * @version Introduced in firmware 4.0.10.27
1505  * @param tool GoSurfaceHole object.
1506  * @return A GoSurfaceHoleY Y measurement.
1507  */
1508 GoFx(GoSurfaceHoleY) GoSurfaceHole_YMeasurement(GoSurfaceHole tool);
1509 
1510 /**
1511  * Returns a GoSurfaceHole Z measurement object.
1512  *
1513  * @public @memberof GoSurfaceHole
1514  * @version Introduced in firmware 4.0.10.27
1515  * @param tool GoSurfaceHole object.
1516  * @return A GoSurfaceHoleZ Z measurement.
1517  */
1518 GoFx(GoSurfaceHoleZ) GoSurfaceHole_ZMeasurement(GoSurfaceHole tool);
1519 
1520 /**
1521  * Returns a GoSurfaceHole Radius measurement object.
1522  *
1523  * @public @memberof GoSurfaceHole
1524  * @version Introduced in firmware 4.0.10.27
1525  * @param tool GoSurfaceHole object.
1526  * @return A GoSurfaceHoleRadius Radius measurement.
1527  */
1528 GoFx(GoSurfaceHoleRadius) GoSurfaceHole_RadiusMeasurement(GoSurfaceHole tool);
1529 
1530 /**
1531 * Returns a GoSurfaceHole point feature object.
1532 *
1533 * @public @memberof GoSurfaceHole
1534 * @version Introduced in firmware 4.0.10.27
1535 * @param tool GoSurfaceHole object.
1536 * @return A GoSurfaceHoleCenterPoint point feature.
1537 */
1538 GoFx(GoSurfaceHoleCenterPoint) GoSurfaceHole_Point(GoSurfaceHole tool);
1539 
1540 
1541 /**
1542  * @class GoSurfaceOpening
1543  * @extends GoSurfaceTool
1544  * @ingroup GoSdk-SurfaceTools
1545  * @brief Represents a surface opening tool.
1546  */
1547 typedef GoSurfaceTool GoSurfaceOpening;
1548 
1549 GoFx(kStatus) GoSurfaceOpening_SetType(GoSurfaceOpening tool, GoSurfaceOpeningType type);
1550 
1551 /**
1552  * Gets the surface opening type.
1553  *
1554  * @public @memberof GoSurfaceOpening
1555  * @version Introduced in firmware 4.0.10.27
1556  * @param tool GoSurfaceOpening object.
1557  * @return The surface opening type.
1558  */
1559 GoFx(GoSurfaceOpeningType) GoSurfaceOpening_Type(GoSurfaceOpening tool);
1560 
1561 /**
1562  * Gets the nominal width.
1563  *
1564  * @public @memberof GoSurfaceOpening
1565  * @version Introduced in firmware 4.0.10.27
1566  * @param tool GoSurfaceOpening object.
1567  * @return The nominal width (in mm).
1568  */
1569 GoFx(k64f) GoSurfaceOpening_NominalWidth(GoSurfaceOpening tool);
1570 
1571 /**
1572  * Sets the nominal width.
1573  *
1574  * @public @memberof GoSurfaceOpening
1575  * @version Introduced in firmware 4.0.10.27
1576  * @param tool GoSurfaceOpening object.
1577  * @param value The nominal width to set (in mm).
1578  * @return Operation status.
1579  */
1580 GoFx(kStatus) GoSurfaceOpening_SetNominalWidth(GoSurfaceOpening tool, k64f value);
1581 
1582 /**
1583  * Gets the nominal length.
1584  *
1585  * @public @memberof GoSurfaceOpening
1586  * @version Introduced in firmware 4.0.10.27
1587  * @param tool GoSurfaceOpening object.
1588  * @return The nominal length (in mm).
1589  */
1590 GoFx(k64f) GoSurfaceOpening_NominalLength(GoSurfaceOpening tool);
1591 
1592 /**
1593  * Sets the nominal length.
1594  *
1595  * @public @memberof GoSurfaceOpening
1596  * @version Introduced in firmware 4.0.10.27
1597  * @param tool GoSurfaceOpening object.
1598  * @param value The nominal length to set (in mm).
1599  * @return Operation status.
1600  */
1601 GoFx(kStatus) GoSurfaceOpening_SetNominalLength(GoSurfaceOpening tool, k64f value);
1602 
1603 /**
1604  * Gets the nominal angle.
1605  *
1606  * @public @memberof GoSurfaceOpening
1607  * @version Introduced in firmware 4.0.10.27
1608  * @param tool GoSurfaceOpening object.
1609  * @return The nominal angle (in degrees).
1610  */
1611 GoFx(k64f) GoSurfaceOpening_NominalAngle(GoSurfaceOpening tool);
1612 
1613 /**
1614  * Sets the nominal angle.
1615  *
1616  * @public @memberof GoSurfaceOpening
1617  * @version Introduced in firmware 4.0.10.27
1618  * @param tool GoSurfaceOpening object.
1619  * @param value The nominal angle to set (in degrees).
1620  * @return Operation status.
1621  */
1622 GoFx(kStatus) GoSurfaceOpening_SetNominalAngle(GoSurfaceOpening tool, k64f value);
1623 
1624 /**
1625  * Gets the nominal radius.
1626  *
1627  * @public @memberof GoSurfaceOpening
1628  * @version Introduced in firmware 4.0.10.27
1629  * @param tool GoSurfaceOpening object.
1630  * @return The nominal radius (in mm).
1631  */
1632 GoFx(k64f) GoSurfaceOpening_NominalRadius(GoSurfaceOpening tool);
1633 
1634 /**
1635  * Sets the nominal radius.
1636  *
1637  * @public @memberof GoSurfaceOpening
1638  * @version Introduced in firmware 4.0.10.27
1639  * @param tool GoSurfaceOpening object.
1640  * @param value The nominal radius to set (in mm).
1641  * @return Operation status.
1642  */
1643 GoFx(kStatus) GoSurfaceOpening_SetNominalRadius(GoSurfaceOpening tool, k64f value);
1644 
1645 /**
1646  * Gets the width tolerance.
1647  *
1648  * @public @memberof GoSurfaceOpening
1649  * @version Introduced in firmware 4.0.10.27
1650  * @param tool GoSurfaceOpening object.
1651  * @return The width tolerance (in mm).
1652  */
1653 GoFx(k64f) GoSurfaceOpening_WidthTolerance(GoSurfaceOpening tool);
1654 
1655 /**
1656  * Sets the width tolerance.
1657  *
1658  * @public @memberof GoSurfaceOpening
1659  * @version Introduced in firmware 4.0.10.27
1660  * @param tool GoSurfaceOpening object.
1661  * @param value The width tolerance to set (in mm).
1662  * @return Operation status.
1663  */
1664 GoFx(kStatus) GoSurfaceOpening_SetWidthTolerance(GoSurfaceOpening tool, k64f value);
1665 
1666 /**
1667  * Gets the length tolerance.
1668  *
1669  * @public @memberof GoSurfaceOpening
1670  * @version Introduced in firmware 4.0.10.27
1671  * @param tool GoSurfaceOpening object.
1672  * @return The length tolerance (in mm).
1673  */
1674 GoFx(k64f) GoSurfaceOpening_LengthTolerance(GoSurfaceOpening tool);
1675 
1676 /**
1677  * Sets the length tolerance.
1678  *
1679  * @public @memberof GoSurfaceOpening
1680  * @version Introduced in firmware 4.0.10.27
1681  * @param tool GoSurfaceOpening object.
1682  * @param value The length tolerance to set (in mm).
1683  * @return Operation status.
1684  */
1685 GoFx(kStatus) GoSurfaceOpening_SetLengthTolerance(GoSurfaceOpening tool, k64f value);
1686 
1687 /**
1688  * Gets the angle tolerance.
1689  *
1690  * @public @memberof GoSurfaceOpening
1691  * @version Introduced in firmware 4.0.10.27
1692  * @param tool GoSurfaceOpening object.
1693  * @return The angle tolerance (in degrees).
1694  */
1695 GoFx(k64f) GoSurfaceOpening_AngleTolerance(GoSurfaceOpening tool);
1696 
1697 /**
1698  * Sets the angle tolerance.
1699  *
1700  * @public @memberof GoSurfaceOpening
1701  * @version Introduced in firmware 4.0.10.27
1702  * @param tool GoSurfaceOpening object.
1703  * @param value The angle tolerance to set (in degrees).
1704  * @return Operation status.
1705  */
1706 GoFx(kStatus) GoSurfaceOpening_SetAngleTolerance(GoSurfaceOpening tool, k64f value);
1707 
1708 /**
1709  * Gets the enabled state of partial detection.
1710  *
1711  * @public @memberof GoSurfaceOpening
1712  * @version Introduced in firmware 4.0.10.27
1713  * @param tool GoSurfaceOpening object.
1714  * @return kTRUE if partial detection is enabled and kFALSE otherwise.
1715  */
1716 GoFx(kBool) GoSurfaceOpening_PartialDetectionEnabled(GoSurfaceOpening tool);
1717 
1718 /**
1719  * Sets the enabled state of partial detection.
1720  *
1721  * @public @memberof GoSurfaceOpening
1722  * @version Introduced in firmware 4.0.10.27
1723  * @param tool GoSurfaceOpening object.
1724  * @param enable kTRUE to enable partial detection and kFALSE to disable it.
1725  * @return Operation status.
1726  */
1727 GoFx(kStatus) GoSurfaceOpening_EnablePartialDetection(GoSurfaceOpening tool, kBool enable);
1728 
1729 /**
1730  * Gets the enabled state of the tool region.
1731  *
1732  * @public @memberof GoSurfaceOpening
1733  * @version Introduced in firmware 4.0.10.27
1734  * @param tool GoSurfaceOpening object.
1735  * @return kTRUE if the tool region is enabled and kFALSE otherwise.
1736  */
1737 GoFx(kBool) GoSurfaceOpening_RegionEnabled(GoSurfaceOpening tool);
1738 
1739 /**
1740  * Sets the enabled state of the tool region.
1741  *
1742  * @public @memberof GoSurfaceOpening
1743  * @version Introduced in firmware 4.0.10.27
1744  * @param tool GoSurfaceOpening object.
1745  * @param enable kTRUE to enable the tool region and kFALSE to disable it.
1746  * @return Operation status.
1747  */
1748 GoFx(kStatus) GoSurfaceOpening_EnableRegion(GoSurfaceOpening tool, kBool enable);
1749 
1750 /**
1751  * Returns the region object for the tool.
1752  *
1753  * @public @memberof GoSurfaceOpening
1754  * @version Introduced in firmware 4.0.10.27
1755  * @param tool GoSurfaceOpening object.
1756  * @return A GoRegion3d object.
1757  */
1758 GoFx(GoRegion3d) GoSurfaceOpening_Region(GoSurfaceOpening tool);
1759 
1760 /**
1761  * Gets the enabled state of reference regions.
1762  *
1763  * @public @memberof GoSurfaceOpening
1764  * @version Introduced in firmware 4.0.10.27
1765  * @param tool GoSurfaceOpening object.
1766  * @return kTRUE if reference regions are enabled and kFALSE otherwise.
1767  */
1768 GoFx(kBool) GoSurfaceOpening_RefRegionsEnabled(GoSurfaceOpening tool);
1769 
1770 /**
1771  * Sets the enabled state of reference regions.
1772  *
1773  * @public @memberof GoSurfaceOpening
1774  * @version Introduced in firmware 4.0.10.27
1775  * @param tool GoSurfaceOpening object.
1776  * @param enable kTRUE to enable reference regions and kFALSE to disable it.
1777  * @return Operation status.
1778  */
1779 GoFx(kStatus) GoSurfaceOpening_EnableRefRegions(GoSurfaceOpening tool, kBool enable);
1780 
1781 /**
1782  * Gets the reference region count.
1783  *
1784  * @public @memberof GoSurfaceOpening
1785  * @version Introduced in firmware 4.0.10.27
1786  * @param tool GoSurfaceOpening object.
1787  * @return The count of reference regions.
1788  */
1789 GoFx(kSize) GoSurfaceOpening_RefRegionCount(GoSurfaceOpening tool);
1790 
1791 /**
1792  * Sets the reference region count.
1793  *
1794  * @public @memberof GoSurfaceOpening
1795  * @version Introduced in firmware 4.0.10.27
1796  * @param tool GoSurfaceOpening object.
1797  * @param count The reference region count to set.
1798  * @return Operation status.
1799  * @see GO_SURFACE_OPENING_MAX_REF_REGIONS
1800  */
1801 GoFx(kStatus) GoSurfaceOpening_SetRefRegionCount(GoSurfaceOpening tool, kSize count);
1802 
1803 /**
1804  * Gets the reference region object at the specified index.
1805  *
1806  * @public @memberof GoSurfaceOpening
1807  * @version Introduced in firmware 4.0.10.27
1808  * @param tool GoSurfaceOpening object.
1809  * @param index The index with which to retrieve a reference region.
1810  * @return A GoSurfaceRegion2d object or kNULL if the index is invalid.
1811  * @see GoSurfaceOpening_RefRegionCount
1812  */
1813 GoFx(GoSurfaceRegion2d) GoSurfaceOpening_RefRegionAt(GoSurfaceOpening tool, kSize index);
1814 
1815 /**
1816  * Gets the enabled state of auto-tilt.
1817  *
1818  * @public @memberof GoSurfaceOpening
1819  * @version Introduced in firmware 4.0.10.27
1820  * @param tool GoSurfaceOpening object.
1821  * @return kTRUE if auto-tilt is enabled and kFALSE otherwise.
1822  */
1823 GoFx(kBool) GoSurfaceOpening_AutoTiltEnabled(GoSurfaceOpening tool);
1824 
1825 /**
1826  * Sets the enabled state of auto-tilt.
1827  *
1828  * @public @memberof GoSurfaceOpening
1829  * @version Introduced in firmware 4.0.10.27
1830  * @param tool GoSurfaceOpening object.
1831  * @param enable kTRUE to enable auto-tilt and kFALSE to disable it.
1832  * @return Operation status.
1833  */
1834 GoFx(kStatus) GoSurfaceOpening_EnableAutoTilt(GoSurfaceOpening tool, kBool enable);
1835 
1836 /**
1837  * Gets the tilt X-angle.
1838  *
1839  * @public @memberof GoSurfaceOpening
1840  * @version Introduced in firmware 4.0.10.27
1841  * @param tool GoSurfaceOpening object.
1842  * @return The tilt X-angle.
1843  */
1844 GoFx(k64f) GoSurfaceOpening_TiltXAngle(GoSurfaceOpening tool);
1845 
1846 /**
1847  * Sets the tilt X-angle.
1848  *
1849  * @public @memberof GoSurfaceOpening
1850  * @version Introduced in firmware 4.0.10.27
1851  * @param tool GoSurfaceOpening object.
1852  * @param value The tilt X-angle to set.
1853  * @return Operation status.
1854  */
1855 GoFx(kStatus) GoSurfaceOpening_SetTiltXAngle(GoSurfaceOpening tool, k64f value);
1856 
1857 /**
1858  * Gets the tilt Y-angle.
1859  *
1860  * @public @memberof GoSurfaceOpening
1861  * @version Introduced in firmware 4.0.10.27
1862  * @param tool GoSurfaceOpening object.
1863  * @return The tilt Y-angle.
1864  */
1865 GoFx(k64f) GoSurfaceOpening_TiltYAngle(GoSurfaceOpening tool);
1866 
1867 /**
1868  * Sets the tilt Y-angle.
1869  *
1870  * @public @memberof GoSurfaceOpening
1871  * @version Introduced in firmware 4.0.10.27
1872  * @param tool GoSurfaceOpening object.
1873  * @param value The tilt Y-angle to set.
1874  * @return Operation status.
1875  */
1876 GoFx(kStatus) GoSurfaceOpening_SetTiltYAngle(GoSurfaceOpening tool, k64f value);
1877 
1878 /**
1879  * Gets the enabled state of the depth limit.
1880  *
1881  * @public @memberof GoSurfaceOpening
1882  * @version Introduced in firmware 4.3.3.124
1883  * @param tool GoSurfaceOpening object.
1884  * @return kTRUE if enabled and kFALSE if disabled.
1885  */
1886 GoFx(kBool) GoSurfaceOpening_DepthLimitEnabled(GoSurfaceOpening tool);
1887 
1888 /**
1889  * Sets the enabled state of the depth limit.
1890  *
1891  * @public @memberof GoSurfaceOpening
1892  * @version Introduced in firmware 4.3.3.124
1893  * @param tool GoSurfaceOpening object.
1894  * @param enable kTRUE to enable it and kFALSE to disable it.
1895  * @return Operation status.
1896  */
1897 GoFx(kStatus) GoSurfaceOpening_EnableDepthLimit(GoSurfaceOpening tool, kBool enable);
1898 
1899 /**
1900  * Gets the depth limit value.
1901  *
1902  * @public @memberof GoSurfaceOpening
1903  * @version Introduced in firmware 4.3.3.124
1904  * @param tool GoSurfaceOpening object.
1905  * @return Depth limit value.
1906 
1907  */
1908 GoFx(k64f) GoSurfaceOpening_DepthLimit(GoSurfaceOpening tool);
1909 
1910 /**
1911  * Sets the depth limit value.
1912  *
1913  * @public @memberof GoSurfaceOpening
1914  * @version Introduced in firmware 4.3.3.124
1915  * @param tool GoSurfaceOpening object.
1916  * @param value The depth limit value to set.
1917  * @return Operation status.
1918  * @see GoSurfaceOpening_DepthLimitEnabled, GoSurfaceOpening_EnableDepthLimit
1919  */
1920 GoFx(kStatus) GoSurfaceOpening_SetDepthLimit(GoSurfaceOpening tool, k64f value);
1921 
1922 
1923 /**
1924  * Returns a GoSurfaceOpening X measurement object.
1925  *
1926  * @public @memberof GoSurfaceOpening
1927  * @version Introduced in firmware 4.0.10.27
1928  * @param tool GoSurfaceOpening object.
1929  * @return A GoSurfaceOpeningX X measurement.
1930  */
1931 GoFx(GoSurfaceOpeningX) GoSurfaceOpening_XMeasurement(GoSurfaceOpening tool);
1932 
1933 /**
1934  * Returns a GoSurfaceOpening Y measurement object.
1935  *
1936  * @public @memberof GoSurfaceOpening
1937  * @version Introduced in firmware 4.0.10.27
1938  * @param tool GoSurfaceOpening object.
1939  * @return A GoSurfaceOpeningY Y measurement.
1940  */
1941 GoFx(GoSurfaceOpeningY) GoSurfaceOpening_YMeasurement(GoSurfaceOpening tool);
1942 
1943 /**
1944  * Returns a GoSurfaceOpening Z measurement object.
1945  *
1946  * @public @memberof GoSurfaceOpening
1947  * @version Introduced in firmware 4.0.10.27
1948  * @param tool GoSurfaceOpening object.
1949  * @return A GoSurfaceOpening Z measurement.
1950  */
1951 GoFx(GoSurfaceOpeningZ) GoSurfaceOpening_ZMeasurement(GoSurfaceOpening tool);
1952 
1953 /**
1954  * Returns a GoSurfaceOpening Width measurement object.
1955  *
1956  * @public @memberof GoSurfaceOpening
1957  * @version Introduced in firmware 4.0.10.27
1958  * @param tool GoSurfaceOpening object.
1959  * @return A GoSurfaceOpeningWidth Width measurement.
1960  */
1961 GoFx(GoSurfaceOpeningWidth) GoSurfaceOpening_WidthMeasurement(GoSurfaceOpening tool);
1962 
1963 /**
1964  * Returns a GoSurfaceOpening Length measurement object.
1965  *
1966  * @public @memberof GoSurfaceOpening
1967  * @version Introduced in firmware 4.0.10.27
1968  * @param tool GoSurfaceOpening object.
1969  * @return A GoSurfaceOpeningLength Length measurement.
1970  */
1971 GoFx(GoSurfaceOpeningLength) GoSurfaceOpening_LengthMeasurement(GoSurfaceOpening tool);
1972 
1973 /**
1974  * Returns a GoSurfaceOpening Angle measurement object.
1975  *
1976  * @public @memberof GoSurfaceOpening
1977  * @version Introduced in firmware 4.0.10.27
1978  * @param tool GoSurfaceOpening object.
1979  * @return A GoSurfaceOpeningAngle Angle measurement.
1980  */
1981 GoFx(GoSurfaceOpeningAngle) GoSurfaceOpening_AngleMeasurement(GoSurfaceOpening tool);
1982 
1983 /**
1984 * Returns a GoSurfaceOpening center point feature object.
1985 *
1986 * @public @memberof GoSurfaceOpening
1987 * @version Introduced in firmware 4.0.10.27
1988 * @param tool GoSurfaceOpening object.
1989 * @return A GoSurfaceOpeningCenterPoint center point feature.
1990 */
1991 GoFx(GoSurfaceOpeningCenterPoint) GoSurfaceOpening_CenterPoint(GoSurfaceHole tool);
1992 
1993 /**
1994  * @class GoSurfacePlane
1995  * @extends GoSurfaceTool
1996  * @ingroup GoSdk-SurfaceTools
1997  * @brief Represents a surface plane tool.
1998  */
1999 typedef GoSurfaceTool GoSurfacePlane;
2000 
2001 /**
2002  * Gets the enabled state of the reference regions.
2003  *
2004  * @public @memberof GoSurfacePlane
2005  * @version Introduced in firmware 4.0.10.27
2006  * @param tool GoSurfacePlane object.
2007  * @return kTRUE if the tool region is enabled and kFALSE otherwise.
2008  */
2009 GoFx(kBool) GoSurfacePlane_RegionsEnabled(GoSurfacePlane tool);
2010 
2011 /**
2012  * Sets the enabled state of the reference regions.
2013  *
2014  * @public @memberof GoSurfacePlane
2015  * @version Introduced in firmware 4.0.10.27
2016  * @param tool GoSurfacePlane object.
2017  * @param enable kTRUE to enable regions and kFALSE to disable them.
2018  * @return Operation status.
2019  */
2020 GoFx(kStatus) GoSurfacePlane_EnableRegions(GoSurfacePlane tool, kBool enable);
2021 
2022 /**
2023  * Gets the tool's region count.
2024  *
2025  * @public @memberof GoSurfacePlane
2026  * @version Introduced in firmware 4.0.10.27
2027  * @param tool GoSurfacePlane object.
2028  * @return The number of regions in the tool.
2029  */
2030 GoFx(kSize) GoSurfacePlane_RegionCount(GoSurfacePlane tool);
2031 
2032 /**
2033  * Sets the tool region count.
2034  *
2035  * @public @memberof GoSurfacePlane
2036  * @version Introduced in firmware 4.0.10.27
2037  * @param tool GoSurfacePlane object.
2038  * @param count The region count to set.
2039  * @return Operation status.
2040  */
2041 GoFx(kStatus) GoSurfacePlane_SetRegionCount(GoSurfacePlane tool, kSize count);
2042 
2043 /**
2044  * Gets a region at the specified index.
2045  *
2046  * @public @memberof GoSurfacePlane
2047  * @version Introduced in firmware 4.0.10.27
2048  * @param tool GoSurfacePlane object.
2049  * @param index The index with which to return a tool region.
2050  * @return A GoRegion3d object or kNULL if the index is in invalid.
2051  * @see GoSurfacePlane_RegionCount
2052  */
2053 GoFx(GoRegion3d) GoSurfacePlane_RegionAt(GoSurfacePlane tool, kSize index);
2054 
2055 /**
2056  * Returns a GoSurfacePlane X Angle measurement object.
2057  *
2058  * @public @memberof GoSurfacePlane
2059  * @version Introduced in firmware 4.0.10.27
2060  * @param tool GoSurfacePlane object.
2061  * @return A GoSurfacePlaneXAngle X Angle measurement.
2062  */
2063 GoFx(GoSurfacePlaneXAngle) GoSurfacePlane_XAngleMeasurement(GoSurfacePlane tool);
2064 
2065 /**
2066  * Returns a GoSurfacePlane Y Angle measurement object.
2067  *
2068  * @public @memberof GoSurfacePlane
2069  * @version Introduced in firmware 4.0.10.27
2070  * @param tool GoSurfacePlane object.
2071  * @return A GoSurfacePlaneYAngle Y Angle measurement.
2072  */
2073 GoFx(GoSurfacePlaneYAngle) GoSurfacePlane_YAngleMeasurement(GoSurfacePlane tool);
2074 
2075 /**
2076  * Returns a GoSurfacePlane Z Offset measurement object.
2077  *
2078  * @public @memberof GoSurfacePlane
2079  * @version Introduced in firmware 4.0.10.27
2080  * @param tool GoSurfacePlane object.
2081  * @return A GoSurfacePlaneZOffset Z Offset measurement.
2082  */
2083 GoFx(GoSurfacePlaneZOffset) GoSurfacePlane_ZOffsetMeasurement(GoSurfacePlane tool);
2084 
2085 /**
2086  * Returns a GoSurfacePlane Standard Deviation measurement object.
2087  *
2088  * @public @memberof GoSurfacePlane
2089  * @version Introduced in firmware 4.4.4.14
2090  * @param tool GoSurfacePlane object.
2091  * @return A GoSurfacePlane Standard Deviation measurement.
2092  */
2093 GoFx(GoSurfacePlaneStdDev) GoSurfacePlane_StdDevMeasurement(GoSurfacePlane tool);
2094 
2095 /**
2096  * Returns a GoSurfacePlane Minimum Error measurement object.
2097  *
2098  * @public @memberof GoSurfacePlane
2099  * @version Introduced in firmware 4.4.4.14
2100  * @param tool GoSurfacePlane object.
2101  * @return A GoSurfacePlaneMinError Minimum Error measurement.
2102  */
2103 GoFx(GoSurfacePlaneMinError) GoSurfacePlane_MinErrorMeasurement(GoSurfacePlane tool);
2104 
2105 /**
2106  * Returns a GoSurfacePlane Maximum Error measurement object.
2107  *
2108  * @public @memberof GoSurfacePlane
2109  * @version Introduced in firmware 4.4.4.14
2110  * @param tool GoSurfacePlane object.
2111  * @return A GoSurfacePlaneMaxError Maximum Error measurement.
2112  */
2113 GoFx(GoSurfacePlaneMaxError) GoSurfacePlane_MaxErrorMeasurement(GoSurfacePlane tool);
2114 
2115 /**
2116 * Returns a GoSurfacePlane X Normal measurement object.
2117 *
2118 * @public @memberof GoSurfacePlane
2119 * @version Introduced in firmware 4.6.0.49
2120 * @param tool GoSurfacePlane object.
2121 * @return A GoSurfacePlaneXNormal X Normal measurement.
2122 */
2123 GoFx(GoSurfacePlaneXNormal) GoSurfacePlane_XNormalMeasurement(GoSurfacePlane tool);
2124 /**
2125 * Returns a GoSurfacePlane Y Normal measurement object.
2126 *
2127 * @public @memberof GoSurfacePlane
2128 * @version Introduced in firmware 4.6.0.49
2129 * @param tool GoSurfacePlane object.
2130 * @return A GoSurfacePlane Y Normal measurement.
2131 */
2132 GoFx(GoSurfacePlaneYNormal) GoSurfacePlane_YNormalMeasurement(GoSurfacePlane tool);
2133 /**
2134 * Returns a GoSurfacePlane X Normal measurement object.
2135 *
2136 * @public @memberof GoSurfacePlane
2137 * @version Introduced in firmware 4.6.0.49
2138 * @param tool GoSurfacePlane object.
2139 * @return A GoSurfacePlane X Normal measurement.
2140 */
2141 GoFx(GoSurfacePlaneZNormal) GoSurfacePlane_ZNormalMeasurement(GoSurfacePlane tool);
2142 /**
2143 * Returns a GoSurfacePlane Distance measurement object.
2144 *
2145 * @public @memberof GoSurfacePlane
2146 * @version Introduced in firmware 4.6.0.49
2147 * @param tool GoSurfacePlane object.
2148 * @return A GoSurfacePlaneDistance Distance measurement.
2149 */
2150 GoFx(GoSurfacePlaneDistance) GoSurfacePlane_DistanceMeasurement(GoSurfacePlane tool);
2151 
2152 /**
2153  * @class GoSurfacePosition
2154  * @extends GoSurfaceTool
2155  * @ingroup GoSdk-SurfaceTools
2156  * @brief Represents a surface position tool.
2157  */
2158 typedef GoSurfaceTool GoSurfacePosition;
2159 
2160 GoFx(GoSurfaceFeature) GoSurfacePosition_Feature(GoSurfacePosition tool);
2161 
2162 /**
2163  * Returns a GoSurfacePosition X measurement object.
2164  *
2165  * @public @memberof GoSurfacePosition
2166  * @version Introduced in firmware 4.0.10.27
2167  * @param tool GoSurfacePosition object.
2168  * @return A GoSurfacePositionX X measurement.
2169  */
2170 GoFx(GoSurfacePositionX) GoSurfacePosition_XMeasurement(GoSurfacePosition tool);
2171 
2172 /**
2173  * Returns a GoSurfacePosition Y measurement object.
2174  *
2175  * @public @memberof GoSurfacePosition
2176  * @version Introduced in firmware 4.0.10.27
2177  * @param tool GoSurfacePosition object.
2178  * @return A GoSurfacePosition Y measurement.
2179  */
2180 GoFx(GoSurfacePositionY) GoSurfacePosition_YMeasurement(GoSurfacePosition tool);
2181 
2182 /**
2183  * Returns a GoSurfacePosition Z measurement object.
2184  *
2185  * @public @memberof GoSurfacePosition
2186  * @version Introduced in firmware 4.0.10.27
2187  * @param tool GoSurfacePosition object.
2188  * @return A GoSurfacePosition Z measurement.
2189  */
2190 GoFx(GoSurfacePositionZ) GoSurfacePosition_ZMeasurement(GoSurfacePosition tool);
2191 
2192 /**
2193 * Returns a GoSurfacePosition point feature object.
2194 *
2195 * @public @memberof GoSurfacePosition
2196 * @version Introduced in firmware 4.0.10.27
2197 * @param tool GoSurfacePosition object.
2198 * @return A GoSurfacePositionPoint point feature.
2199 */
2200 GoFx(GoSurfacePositionPoint) GoSurfacePosition_Point(GoSurfaceHole tool);
2201 
2202 /**
2203  * @class GoSurfaceStud
2204  * @extends GoSurfaceTool
2205  * @ingroup GoSdk-SurfaceTools
2206  * @brief Represents a surface stud tool.
2207  */
2208 typedef GoSurfaceTool GoSurfaceStud;
2209 
2210 /**
2211  * Returns the stud radius value.
2212  *
2213  * @public @memberof GoSurfaceStud
2214  * @version Introduced in firmware 4.0.10.27
2215  * @param tool GoSurfaceStud object.
2216  * @return The stud radius value.
2217  */
2218 GoFx(k64f) GoSurfaceStud_StudRadius(GoSurfaceStud tool);
2219 
2220 /**
2221  * Sets the stud radius value.
2222  *
2223  * @public @memberof GoSurfaceStud
2224  * @version Introduced in firmware 4.0.10.27
2225  * @param tool GoSurfaceStud object.
2226  * @param value The stud radius value to set.
2227  * @return Operation status.
2228  */
2229 GoFx(kStatus) GoSurfaceStud_SetStudRadius(GoSurfaceStud tool, k64f value);
2230 
2231 /**
2232  * Returns the stud height value.
2233  *
2234  * @public @memberof GoSurfaceStud
2235  * @version Introduced in firmware 4.0.10.27
2236  * @param tool GoSurfaceStud object.
2237  * @return The stud height value.
2238  */
2239 GoFx(k64f) GoSurfaceStud_StudHeight(GoSurfaceStud tool);
2240 
2241 /**
2242  * Sets the stud height value.
2243  *
2244  * @public @memberof GoSurfaceStud
2245  * @version Introduced in firmware 4.0.10.27
2246  * @param tool GoSurfaceStud object.
2247  * @param value The stud height value to set.
2248  * @return Operation status.
2249  */
2250 GoFx(kStatus) GoSurfaceStud_SetStudHeight(GoSurfaceStud tool, k64f value);
2251 
2252 /**
2253  * Returns the stud base height value.
2254  *
2255  * @public @memberof GoSurfaceStud
2256  * @version Introduced in firmware 4.0.10.27
2257  * @param tool GoSurfaceStud object.
2258  * @return The stud base height value.
2259  */
2260 GoFx(k64f) GoSurfaceStud_BaseHeight(GoSurfaceStud tool);
2261 
2262 /**
2263  * Sets the base height value.
2264  *
2265  * @public @memberof GoSurfaceStud
2266  * @version Introduced in firmware 4.0.10.27
2267  * @param tool GoSurfaceStud object.
2268  * @param value The base height value to set.
2269  * @return Operation status.
2270  */
2271 GoFx(kStatus) GoSurfaceStud_SetBaseHeight(GoSurfaceStud tool, k64f value);
2272 
2273 /**
2274  * Returns the stud tip height value.
2275  *
2276  * @public @memberof GoSurfaceStud
2277  * @version Introduced in firmware 4.0.10.27
2278  * @param tool GoSurfaceStud object.
2279  * @return The stud tip height value.
2280  */
2281 GoFx(k64f) GoSurfaceStud_TipHeight(GoSurfaceStud tool);
2282 
2283 /**
2284  * Sets the tip height value.
2285  *
2286  * @public @memberof GoSurfaceStud
2287  * @version Introduced in firmware 4.0.10.27
2288  * @param tool GoSurfaceStud object.
2289  * @param value The tip height value to set.
2290  * @return Operation status.
2291  */
2292 GoFx(kStatus) GoSurfaceStud_SetTipHeight(GoSurfaceStud tool, k64f value);
2293 
2294 /**
2295  * Gets the enabled state of the tool region.
2296  *
2297  * @public @memberof GoSurfaceStud
2298  * @version Introduced in firmware 4.0.10.27
2299  * @param tool GoSurfaceStud object.
2300  * @return kTRUE if enabled and kFALSE if disabled.
2301  */
2302 GoFx(kBool) GoSurfaceStud_RegionEnabled(GoSurfaceStud tool);
2303 
2304 /**
2305  * Sets the enabled state of the tool region.
2306  *
2307  * @public @memberof GoSurfaceStud
2308  * @version Introduced in firmware 4.0.10.27
2309  * @param tool GoSurfaceStud object.
2310  * @param enable kTRUE to enable the region and kFALSE to disable it.
2311  * @return Operation status.
2312  */
2313 GoFx(kStatus) GoSurfaceStud_EnableRegion(GoSurfaceStud tool, kBool enable);
2314 
2315 /**
2316  * Returns the tool region object.
2317  *
2318  * @public @memberof GoSurfaceStud
2319  * @version Introduced in firmware 4.0.10.27
2320  * @param tool GoSurfaceStud object.
2321  * @return A GoRegion3d object.
2322  */
2323 GoFx(GoRegion3d) GoSurfaceStud_Region(GoSurfaceStud tool);
2324 
2325 /**
2326  * Gets the enabled state of the reference regions.
2327  *
2328  * @public @memberof GoSurfaceStud
2329  * @version Introduced in firmware 4.0.10.27
2330  * @param tool GoSurfaceStud object.
2331  * @return enable kTRUE if the reference regions are enabled and kFALSE otherwise.
2332  */
2333 GoFx(kBool) GoSurfaceStud_RefRegionsEnabled(GoSurfaceStud tool);
2334 
2335 /**
2336  * Sets the enabled state of the reference regions.
2337  *
2338  * @public @memberof GoSurfaceStud
2339  * @version Introduced in firmware 4.0.10.27
2340  * @param tool GoSurfaceStud object.
2341  * @param enable kTRUE to enable the region and kFALSE to disable it.
2342  * @return Operation status.
2343  */
2344 GoFx(kStatus) GoSurfaceStud_EnableRefRegions(GoSurfaceStud tool, kBool enable);
2345 
2346 /**
2347  * Sets the reference region count.
2348  *
2349  * @public @memberof GoSurfaceStud
2350  * @version Introduced in firmware 4.0.10.27
2351  * @param tool GoSurfaceStud object.
2352  * @param count The number of reference regions to use.
2353  * @return Operation status.
2354  * @see GO_SURFACE_STUD_MAX_REF_REGIONS
2355  */
2356 GoFx(kStatus) GoSurfaceStud_SetRefRegionCount(GoSurfaceStud tool, kSize count);
2357 
2358 /**
2359  * Returns the reference region count.
2360  *
2361  * @public @memberof GoSurfaceStud
2362  * @version Introduced in firmware 4.0.10.27
2363  * @param tool GoSurfaceStud object.
2364  * @return The reference region count.
2365  */
2366 GoFx(kSize) GoSurfaceStud_RefRegionCount(GoSurfaceStud tool);
2367 
2368 /**
2369  * Returns the reference region object at the given index.
2370  *
2371  * @public @memberof GoSurfaceStud
2372  * @version Introduced in firmware 4.0.10.27
2373  * @param tool GoSurfaceStud object.
2374  * @param index The index with which to return a reference region.
2375  * @return A GoSurfaceRegion2d object.
2376  * @see GoSurfaceStud_RefRegionCount
2377  */
2378 GoFx(GoSurfaceRegion2d) GoSurfaceStud_RefRegionAt(GoSurfaceStud tool, kSize index);
2379 
2380 /**
2381  * Gets the enabled state of auto-tilt.
2382  *
2383  * @public @memberof GoSurfaceStud
2384  * @version Introduced in firmware 4.0.10.27
2385  * @param tool GoSurfaceStud object.
2386  * @return kTRUE if enabled and kFALSE if disabled.
2387  */
2388 GoFx(kBool) GoSurfaceStud_AutoTiltEnabled(GoSurfaceStud tool);
2389 
2390 /**
2391  * Sets the enabled state of auto-tilt.
2392  *
2393  * @public @memberof GoSurfaceStud
2394  * @version Introduced in firmware 4.0.10.27
2395  * @param tool GoSurfaceStud object.
2396  * @param enable kTRUE to enable the region and kFALSE to disable it.
2397  * @return Operation status.
2398  */
2399 GoFx(kStatus) GoSurfaceStud_EnableAutoTilt(GoSurfaceStud tool, kBool enable);
2400 
2401 /**
2402  * Gets the tilt X-angle value.
2403  *
2404  * @public @memberof GoSurfaceStud
2405  * @version Introduced in firmware 4.0.10.27
2406  * @param tool GoSurfaceStud object.
2407  * @return The tilt X-angle value.
2408  */
2409 GoFx(k64f) GoSurfaceStud_TiltXAngle(GoSurfaceStud tool);
2410 
2411 /**
2412  * Sets the tilt X-angle value.
2413  *
2414  * @public @memberof GoSurfaceStud
2415  * @version Introduced in firmware 4.0.10.27
2416  * @param tool GoSurfaceStud object.
2417  * @param value The tilt X-angle value to set.
2418  * @return Operation status.
2419  */
2420 GoFx(kStatus) GoSurfaceStud_SetTiltXAngle(GoSurfaceStud tool, k64f value);
2421 
2422 /**
2423  * Returns the tilt Y-angle value.
2424  *
2425  * @public @memberof GoSurfaceStud
2426  * @version Introduced in firmware 4.0.10.27
2427  * @param tool GoSurfaceStud object.
2428  * @return The tilt Y-angle value.
2429  */
2430 GoFx(k64f) GoSurfaceStud_TiltYAngle(GoSurfaceStud tool);
2431 
2432 /**
2433  * Sets the tilt Y-angle value.
2434  *
2435  * @public @memberof GoSurfaceStud
2436  * @version Introduced in firmware 4.0.10.27
2437  * @param tool GoSurfaceStud object.
2438  * @param value The tilt Y-angle value to set.
2439  * @return Operation status.
2440  */
2441 GoFx(kStatus) GoSurfaceStud_SetTiltYAngle(GoSurfaceStud tool, k64f value);
2442 
2443 /**
2444  * Returns a GoSurfaceStud Base X measurement object.
2445  *
2446  * @public @memberof GoSurfaceStud
2447  * @version Introduced in firmware 4.0.10.27
2448  * @param tool GoSurfaceStud object.
2449  * @return A GoSurfaceStudBaseX Base X measurement.
2450  */
2451 GoFx(GoSurfaceStudBaseX) GoSurfaceStud_BaseXMeasurement(GoSurfaceStud tool);
2452 
2453 /**
2454  * Returns a GoSurfaceStud Base Y measurement object.
2455  *
2456  * @public @memberof GoSurfaceStud
2457  * @version Introduced in firmware 4.0.10.27
2458  * @param tool GoSurfaceStud object.
2459  * @return A GoSurfaceStudBaseY Base Y measurement.
2460  */
2461 GoFx(GoSurfaceStudBaseY) GoSurfaceStud_BaseYMeasurement(GoSurfaceStud tool);
2462 
2463 /**
2464  * Returns a GoSurfaceStud Base Z measurement object.
2465  *
2466  * @public @memberof GoSurfaceStud
2467  * @version Introduced in firmware 4.0.10.27
2468  * @param tool GoSurfaceStud object.
2469  * @return A GoSurfaceStud Base Z measurement.
2470  */
2471 GoFx(GoSurfaceStudBaseZ) GoSurfaceStud_BaseZMeasurement(GoSurfaceStud tool);
2472 
2473 /**
2474  * Returns a GoSurfaceStud Tip X measurement object.
2475  *
2476  * @public @memberof GoSurfaceStud
2477  * @version Introduced in firmware 4.0.10.27
2478  * @param tool GoSurfaceStud object.
2479  * @return A GoSurfaceStudTipX Tip X measurement.
2480  */
2481 GoFx(GoSurfaceStudTipX) GoSurfaceStud_TipXMeasurement(GoSurfaceStud tool);
2482 
2483 /**
2484  * Returns a GoSurfaceStud Tip Y measurement object.
2485  *
2486  * @public @memberof GoSurfaceStud
2487  * @version Introduced in firmware 4.0.10.27
2488  * @param tool GoSurfaceStud object.
2489  * @return A GoSurfaceStudTipY Tip Y measurement.
2490  */
2491 GoFx(GoSurfaceStudTipY) GoSurfaceStud_TipYMeasurement(GoSurfaceStud tool);
2492 
2493 /**
2494  * Returns a GoSurfaceStud Tip Z measurement object.
2495  *
2496  * @public @memberof GoSurfaceStud
2497  * @version Introduced in firmware 4.0.10.27
2498  * @param tool GoSurfaceStud object.
2499  * @return A GoSurfaceStudTipZ Tip Z measurement.
2500  */
2501 GoFx(GoSurfaceStudTipZ) GoSurfaceStud_TipZMeasurement(GoSurfaceStud tool);
2502 
2503 /**
2504  * Returns a GoSurfaceStud Radius measurement object.
2505  *
2506  * @public @memberof GoSurfaceStud
2507  * @version Introduced in firmware 4.0.10.27
2508  * @param tool GoSurfaceStud object.
2509  * @return A GoSurfaceStudRadius Radius measurement.
2510  */
2511 GoFx(GoSurfaceStudRadius) GoSurfaceStud_RadiusMeasurement(GoSurfaceStud tool);
2512 
2513 /**
2514 * Returns a GoSurfaceStud tip point feature object.
2515 *
2516 * @public @memberof GoSurfaceStud
2517 * @version Introduced in firmware 4.0.10.27
2518 * @param tool GoSurfaceStud object.
2519 * @return A GoSurfaceStudTipPoint tip point feature .
2520 */
2521 GoFx(GoSurfaceStudTipPoint) GoSurfaceStud_TipPoint(GoSurfaceHole tool);
2522 
2523 /**
2524 * Returns a GoSurfaceStud base point feature object.
2525 *
2526 * @public @memberof GoSurfaceStud
2527 * @version Introduced in firmware 4.0.10.27
2528 * @param tool GoSurfaceStud object.
2529 * @return A GoSurfaceStudBasePoint base point feature.
2530 */
2531 GoFx(GoSurfaceStudBasePoint) GoSurfaceStud_BasePoint(GoSurfaceHole tool);
2532 
2533 /**
2534  * @class GoSurfaceVolume
2535  * @extends GoSurfaceTool
2536  * @ingroup GoSdk-SurfaceTools
2537  * @brief Represents a surface volume tool.
2538  */
2539 typedef GoSurfaceTool GoSurfaceVolume;
2540 
2541 /**
2542  * Gets the enabled state of the tool region.
2543  *
2544  * @public @memberof GoSurfaceVolume
2545  * @version Introduced in firmware 4.0.10.27
2546  * @param tool GoSurfaceVolume object.
2547  * @return kTRUE if enabled and kFALSE if disabled.
2548  */
2549 GoFx(kBool) GoSurfaceVolume_RegionEnabled(GoSurfaceVolume tool);
2550 
2551 /**
2552  * Sets the enabled state of the tool region.
2553  *
2554  * @public @memberof GoSurfaceVolume
2555  * @version Introduced in firmware 4.0.10.27
2556  * @param tool GoSurfaceVolume object.
2557  * @param enable kTRUE to enable the tool region and kFALSE to disable it.
2558  */
2559 GoFx(kStatus) GoSurfaceVolume_EnableRegion(GoSurfaceVolume tool, kBool enable);
2560 
2561 /**
2562  * Returns the tool region object.
2563  *
2564  * @public @memberof GoSurfaceVolume
2565  * @version Introduced in firmware 4.0.10.27
2566  * @param tool GoSurfaceVolume object.
2567  * @return A GoRegion3d object.
2568  */
2569 GoFx(GoRegion3d) GoSurfaceVolume_Region(GoSurfaceVolume tool);
2570 
2571 /**
2572  * Returns a GoSurfaceVolume Volume measurement object.
2573  *
2574  * @public @memberof GoSurfaceVolume
2575  * @version Introduced in firmware 4.0.10.27
2576  * @param tool GoSurfaceVolume object.
2577  * @return A GoSurfaceVolumeVolume Volume measurement.
2578  */
2579 GoFx(GoSurfaceVolumeVolume) GoSurfaceVolume_VolumeMeasurement(GoSurfaceVolume tool);
2580 
2581 /**
2582  * Returns a GoSurfaceVolume Area measurement object.
2583  *
2584  * @public @memberof GoSurfaceVolume
2585  * @version Introduced in firmware 4.0.10.27
2586  * @param tool GoSurfaceVolume object.
2587  * @return A GoSurfaceVolumeArea Area measurement.
2588  */
2589 GoFx(GoSurfaceVolumeArea) GoSurfaceVolume_AreaMeasurement(GoSurfaceVolume tool);
2590 
2591 /**
2592  * Returns a GoSurfaceVolume Thickness measurement object.
2593  *
2594  * @public @memberof GoSurfaceVolume
2595  * @version Introduced in firmware 4.0.10.27
2596  * @param tool GoSurfaceVolume object.
2597  * @return A GoSurfaceVolumeThickness Thickness measurement.
2598  */
2599 GoFx(GoSurfaceVolumeThickness) GoSurfaceVolume_ThicknessMeasurement(GoSurfaceVolume tool);
2600 
2601 kEndHeader()
2602 #include <GoSdk/Tools/GoSurfaceTools.x.h>
2603 
2604 #endif
2605 
2606 /// @endcond
Declares the base GoTool class.
Represents a major axis line.
Represents a position Z measurement of a Range Position tool.
Represents a position Z measurement of a Range Position tool.
Represents a position Z measurement of a Range Position tool.
Declares the base GoExtTool class.
Represents a position Z measurement of a Range Position tool.
Represents a position Z measurement of a Range Position tool.
Represents a data source.
Represents a minor axis line.
Contains various helper functions.
Essential SDK declarations.
Represents the base tool class.
Represents a position Z measurement of a Range Position tool.
Represents a position Z measurement of a Range Position tool.
Represents a position Z measurement of a Range Position tool.
Represents a position Z measurement of a Range Position tool.