Gocator API
 All Classes Files Functions Variables Typedefs Macros Modules Pages
GoGeoCal.h
Go to the documentation of this file.
1 /**
2 * @file GoGeoCal.h
3 * @brief Declares the GoGeoCal class.
4 *
5 * @internal
6 * Copyright (C) 2017-2018 by LMI Technologies Inc.
7 * Licensed under the MIT License.
8 * Redistributed files must retain the above copyright notice.
9 */
10 #ifndef GO_GEOCAL_H
11 #define GO_GEOCAL_H
12 
13 #include <GoSdk/GoSdkDef.h>
14 
15 kBeginHeader()
16 
17 /**
18 * @class GoGeoCal
19 * @extends kObject
20 * @ingroup GoSdk
21 * @brief Contains the GeoCal data for a sensor.
22 * Do not read the GeoCal file directly, use this class to parse it.
23 */
24 typedef kObject GoGeoCal;
25 
26 /**
27 * Gets sensor ID
28 *
29 * @public @memberof GoGeoCal
30 * @version Introduced in firmware 4.7.0.130
31 * @param cal GoGeoCal object.
32 * @return Sensor ID.
33 */
34 GoFx(k32u) GoGeoCal_Id(GoGeoCal cal);
35 
36 /**
37 * Gets timestamp
38 *
39 * @public @memberof GoGeoCal
40 * @version Introduced in firmware 4.7.0.130
41 * @param cal GoGeoCal object.
42 * @return Timestamp.
43 */
44 GoFx(const kChar*) GoGeoCal_Timestamp(GoGeoCal cal);
45 
46 /**
47 * Gets count of cameras.
48 *
49 * @public @memberof GoGeoCal
50 * @version Introduced in firmware 4.7.0.130
51 * @param cal GoGeoCal object.
52 * @return Count of views.
53 */
54 GoFx(kSize) GoGeoCal_CameraCount(GoGeoCal cal);
55 
56 /**
57 * Gets calibration window.
58 *
59 * @public @memberof GoGeoCal
60 * @version Introduced in firmware 4.7.0.130
61 * @param cal GoGeoCal object.
62 * @param cameraIndex Camera index. kERROR_PARAMETER if invalid.
63 * @param x Output parameter for window x. Provide with a pointer to a k32u. Ignored if input is kNULL.
64 * @param y Output parameter for window y. Provide with a pointer to a k32u. Ignored if input is kNULL.
65 * @param width Output parameter for window width. Provide with a pointer to a k32u. Ignored if input is kNULL.
66 * @param height Output parameter for window height. Provide with a pointer to a k32u. Ignored if input is kNULL.
67 * @param xSubsampling Output parameter for window xSubsampling. Provide with a pointer to a k32u. Ignored if input is kNULL.
68 * @param ySubsampling Output parameter for window ySubsampling. Provide with a pointer to a k32u. Ignored if input is kNULL.
69 * @return Operation status.
70 */
71 GoFx(kStatus) GoGeoCal_CalWindow(GoGeoCal cal, kSize cameraIndex, k32u* x, k32u* y, k32u* width, k32u* height, k32u* xSubsampling, k32u* ySubsampling);
72 
73 /**
74 * Gets X resolution to Z fit.
75 * The X and Y resolution (mm/pixel) of an imager's pixels varies with the range. When resampling images,
76 * it is necessary to know the native resolution of each pixel. Typically, this is only needed for color/texture output.
77 * Profile cameras would have a fit set to kNULL. The fit is stored as polynomial coefficients. The X resolution at a
78 * given Z range (mm) can be determined by:
79 *
80 * X resolution = coefficients[0] + coefficients[1]*Z + ... + coefficients[N]*Z^N
81 *
82 * @public @memberof GoGeoCal
83 * @version Introduced in firmware 4.7.0.130
84 * @param cal GoGeoCal object.
85 * @param cameraIndex Camera index.
86 * @return Array of X resolution to Z fit coefficients. Type: k64f. kNULL is returned if the
87 * camera does not have a X resolution to Z fit.
88 */
89 GoFx(kArray1) GoGeoCal_XResolutionFit(GoGeoCal cal, kSize cameraIndex);
90 
91 /**
92 * Gets Y resolution to Z fit.
93 * The X and Y resolution (mm/pixel) of an imager's pixels varies with the range. When resampling images,
94 * it is necessary to know the native resolution of each pixel. Typically, this is only needed for color/texture output.
95 * Profile cameras would have a fit set to kNULL. The fit is stored as polynomial coefficients. The Y resolution at a
96 * given Z range (mm) can be determined by:
97 *
98 * Y resolution = coefficients[0] + coefficients[1]*Z + ... + coefficients[N]*Z^N
99 *
100 * @public @memberof GoGeoCal
101 * @version Introduced in firmware 4.7.0.130
102 * @param cal GoGeoCal object.
103 * @param cameraIndex Camera index.
104 * @return Array of Y resolution to Z fit coefficients. Type: k64f. kNULL is returned if the
105 * camera does not have a X resolution to Z fit.
106 */
107 GoFx(kArray1) GoGeoCal_YResolutionFit(GoGeoCal cal, kSize cameraIndex);
108 
109 /**
110 * Gets X center to Z fit.
111 * The world X center (mm) of an imager varies with the range if any yaw is present. It also represents the distance
112 * from the sensor reference 0 plane (usually mid-sensor). The fit is stored as polynomial coefficients. The X center
113 * at a given Z range (mm) can be determined by:
114 *
115 * X center = coefficients[0] + coefficients[1]*Z + ... + coefficients[N]*Z^N
116 *
117 * @public @memberof GoGeoCal
118 * @version Introduced in firmware 4.7.0.130
119 * @param cal GoGeoCal object.
120 * @param cameraIndex Camera index.
121 * @return Array of X center to Z fit coefficients. Type: k64f.
122 */
123 GoFx(kArray1) GoGeoCal_XCenterFit(GoGeoCal cal, kSize cameraIndex);
124 
125 /**
126 * Gets Y center to Z fit.
127 * The world Y center (mm) of an imager varies with the range if any pitch is present. It also represents the distance
128 * from the sensor reference 0 plane (usually mid-sensor). The fit is stored as polynomial coefficients. The Y center
129 * at a given Z range (mm) can be determined by:
130 *
131 * Y center = coefficients[0] + coefficients[1]*Z + ... + coefficients[N]*Z^N
132 *
133 * @public @memberof GoGeoCal
134 * @version Introduced in firmware 4.7.0.130
135 * @param cal GoGeoCal object.
136 * @param cameraIndex Camera index. kERROR_PARAMETER if invalid.
137 * @return Array of Y center to Z fit coefficients. Type: k64f.
138 */
139 GoFx(kArray1) GoGeoCal_YCenterFit(GoGeoCal cal, kSize cameraIndex);
140 
141 /**
142 * Gets camera roll angle. This can be used to correct for camera roll.
143 *
144 * @public @memberof GoGeoCal
145 * @version Introduced in firmware 4.7.0.130
146 * @param cal GoGeoCal object.
147 * @param cameraIndex Camera index
148 * @return Roll angle (in radians)
149 */
150 GoFx(k64f) GoGeoCal_Roll(GoGeoCal cal, kSize cameraIndex);
151 
152 kEndHeader()
153 #include <GoSdk/GoGeoCal.x.h>
154 
155 #endif
const kChar * GoGeoCal_Timestamp(GoGeoCal cal)
Gets timestamp.
kSize GoGeoCal_CameraCount(GoGeoCal cal)
Gets count of cameras.
kArray1 GoGeoCal_YCenterFit(GoGeoCal cal, kSize cameraIndex)
Gets Y center to Z fit.
kStatus GoGeoCal_CalWindow(GoGeoCal cal, kSize cameraIndex, k32u *x, k32u *y, k32u *width, k32u *height, k32u *xSubsampling, k32u *ySubsampling)
Gets calibration window.
k32u GoGeoCal_Id(GoGeoCal cal)
Gets sensor ID.
kArray1 GoGeoCal_XCenterFit(GoGeoCal cal, kSize cameraIndex)
Gets X center to Z fit.
kArray1 GoGeoCal_YResolutionFit(GoGeoCal cal, kSize cameraIndex)
Gets Y resolution to Z fit.
Essential SDK declarations.
k64f GoGeoCal_Roll(GoGeoCal cal, kSize cameraIndex)
Gets camera roll angle.
Contains the GeoCal data for a sensor. Do not read the GeoCal file directly, use this class to parse ...
kArray1 GoGeoCal_XResolutionFit(GoGeoCal cal, kSize cameraIndex)
Gets X resolution to Z fit.