GoWebScan API
GoWebScanTracheidMergeTask.h
Go to the documentation of this file.
1 /**
2 * @file GoWebScanTracheidMergeTask.h
3 * @brief Declares a GoWebScanTracheidMergeTask object.
4 *
5 * @internal
6 * Copyright (C) 2017-2026 by LMI Technologies Inc.
7 * Licensed under the MIT License.
8 * Redistributed files must retain the above copyright notice.
9 */
10 
11 #ifndef GO_WEB_SCAN_TRACHEID_MERGE_TASK_H
12 #define GO_WEB_SCAN_TRACHEID_MERGE_TASK_H
13 
18 
19 /**
20 * @class GoWebScanTracheidMergeTask
21 * @extends kObject
22 * @ingroup GoWebScanSdk-Control
23 * @brief Represents a task for merging tracheid tiles along X-axis from the cameras in a top
24  or bottom group. Specifically, the task accepts a list of tracheid tiles that
25 * correspond to the same Y-position, and merges them into a single group-wide tile
26 * according to their respective source locations along the X-axis. Gaps and overlaps
27 * between adjacent tiles are processed according to configuration options.
28 * The task accepts GoWebScanTileListMsg objects and produces GoWebScanTracheidTileMsg
29 * objects.
30 *
31 * Processing steps:
32 * -# Clear the background of the output system tile.
33 * -# Add GoWebScanTileListMsg input tiles to the processing queue
34 * -# Blend the overlap between tiles. Overlaps are processed by searching for the last
35 * valid left element and first valid right element within the overlapping region
36 * between two tiles. If overlap exists, the overlapping elements are blended by
37 * weighted average. The angle requires special handling with respect to overlap
38 * blending because of the circular/continuous nature of angle measurements.
39 * -# Fill gaps between tiles. Gaps are processed by searching for the last valid left
40 * element and first valid right element within the gap search window. If these
41 * elements are closer than the gap threshold, any null elements in between are
42 * filled in (nearest neighbour).
43 */
45 
46 // Forward declaration
48 
49 /**
50 * Constructs a GoWebScanTracheidMergeTask object.
51 *
52 * @public @memberof GoWebScanTracheidMergeTask
53 * @param task Receives the constructed GoWebScanTracheidMergeTask object.
54 * @param process Associated GoWebScanProcess object.
55 * @param configGroup Group configuration.
56 * @param allocator Memory allocator (or kNULL for default).
57 * @return Operation status.
58 */
60 
61 /**
62 * Sets the handler for receiving merged system tracheid tiles.
63 *
64 * @public @memberof GoWebScanTracheidMergeTask
65 * @param task GoWebScanTracheidMergeTask object.
66 * @param send Callback function
67 * @param context Receiver argument for callback.
68 * @return Operation status.
69 */
71 
72 /**
73 * Adds a message to the processing queue. Dequeues a message at the end of the queue to submit
74 * to the pipe for scheduling if no other job is currently pending.
75 *
76 * @public @memberof GoWebScanTracheidMergeTask
77 * @param task GoWebScanTracheidMergeTask object.
78 * @param msg Tile list message to enqueue.
79 * @return Operation status.
80 */
82 
83 #include <GoWebScanSdk/GoWebScanTracheidMergeTask.x.h>
84 
85 #endif
Declares the GoWebScanPipeTask class.
Represents a task for processing raw sensor data to produce system web tiles (Web mode) or detected o...
Declares a GoWebScanPipe object.
kStatus(kCall * GoWebScanPipeSendFx)(kPointer context, GoWebScanPipeMsg msg)
Defines the signature of the handler used by tasks to receive a message from the pipe.
Definition: GoWebScanPipe.h:33
Represents a task for merging tracheid tiles along X-axis from the cameras in a top or bottom group...
Essential GoWebScan declarations.
Represents a container for group-level parameters which are translated from user parameters set in Go...
kStatus GoWebScanTracheidMergeTask_SetReceiver(GoWebScanTracheidMergeTask task, GoWebScanPipeSendFx send, kPointer context)
Sets the handler for receiving merged system tracheid tiles.
kStatus GoWebScanTracheidMergeTask_Construct(GoWebScanTracheidMergeTask *task, GoWebScanProcess process, GoWebScanConfigGroup configGroup, kAlloc allocator)
Constructs a GoWebScanTracheidMergeTask object.
Base class for a msg that can be processed with a GoWebScanPipeTask and submitted to the GoWebScanPip...
kStatus GoWebScanTracheidMergeTask_Send(GoWebScanTracheidMergeTask task, GoWebScanPipeMsg msg)
Adds a message to the processing queue.
Declares a GoWebScanConfig object.