Gocator Line Profile Sensors: User Manual
• 555
const kPoint3d64f* scale = GdkDataInfo_Scale(GtInputItem_Info(item));
const kPoint3d64f* offset = GdkInputItem_Offset(item);
Retrieving a pointer to surface and intensity surface data
const k16s* rangeSrc = GdkSurfaceInput_RangeRowAt(item, 0);
const k8u* intensitySrc = GdkSurfaceInput_IntensityRowAt(item, 0);
Similar functions are available for retrieving information from range and profile data.
Computing actual height information using a offset and scales
k64f height = rangeSrc[index] * scale->z + offset->z;
Extracting height information from profiles and surfaces.
The TestProfileSelect and TestSurfaceSelect examples show how to perform these
operations.
Setup and Region Info during Tool Initialization
Memory allocation is often done in the VInit or VStart function. To retrieve sensor and data
information such as active area settings and data scale outside of VProcess, you can use the following
function:
GdkDataInfo info = GdkSensorInfo_DataSource(GdkTool_SensorInfo(tool), GDK_DATA_SOURCE_
TOP);
Computing Region Based on the Offset from an Anchor Source
Just like built-in measurement tools, custom tools created with the GDKcan be anchored to another tool
(GDK-based tools or built-in tools).
To compute the offset region:
TestToolClass* obj = TestTool_Cast_(tool);
GdkParams params = GdkToolCfg_Parameters(config);
const kPoint3d64f* anchor = GdkToolInput_AnchorPosition(input);
GdkRegionXZ64f offsetRegion = {k64F_NULL, k64F_NULL, k64F_NULL, k64F_NULL };
param = GdkParams_Find(params, "Region");
obj->region = *GdkParam_AsProfileRegion(param);
offsetRegion = obj->region;
offsetRegion.x += anchor->x;
offsetRegion.z += anchor->z;
In the code above, we first retrieve the tool’s region settings (before anchoring is applied), and then
adjust the region based on the results from the anchored source in VProcess. If the anchored source
fails, the tools will not be invoked.
The TestProfileSelect and TestSurfaceSelect examples show how to extract height
information from anchored regions.
For more information on anchoring, see Measurement Anchoring in the Gocator user manual.