GoWebScan API
GoWebScanProfileMergeTask.h
Go to the documentation of this file.
1 /**
2 * @file GoWebScanProfileMergeTask.h
3 * @brief Declares a GoWebScanProfileMergeTask 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_PROFILE_MERGE_TASK_H
12 #define GO_WEB_SCAN_PROFILE_MERGE_TASK_H
13 
18 
19 /**
20 * @class GoWebScanProfileMergeTask
21 * @extends kObject
22 * @ingroup GoWebScanSdk-Control
23 * @brief Represents a task for merging profile tiles along X-axis from the cameras in a top
24 * or bottom group. Specifically, the task accepts a list of profile 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 GoWebScanProfileTileMsg
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.
38 * -# Fill gaps between tiles. Gaps are processed by searching for the last valid left
39 * element and first valid right element within the gap search window. If these
40 * elements are closer than the gap threshold, any null elements in between are
41 * filled in (nearest neighbour).
42 */
44 
45 // Forward declaration
47 
48 /**
49  * Constructs a GoWebScanProfileMergeTask object.
50  *
51  * @public @memberof GoWebScanProfileMergeTask
52  * @param task Receives the constructed GoWebScanProfileMergeTask object.
53  * @param process Associated GoWebScanProcess object.
54  * @param configGroup Group configuration.
55  * @param presenceDetection Whether the task is merging profile tiles intended for presence
56  * detection or is just merging standard profile tiles.
57  * @param allocator Memory allocator (or kNULL for default).
58  * @return Operation status.
59  */
60 GoWebScanFx(kStatus) GoWebScanProfileMergeTask_Construct(GoWebScanProfileMergeTask* task, GoWebScanProcess process, GoWebScanConfigGroup configGroup, kBool presenceDetection, kAlloc allocator);
61 
62 /**
63 * Sets the handler for receiving merged system profile tiles.
64 *
65 * @public @memberof GoWebScanProfileMergeTask
66 * @param task GoWebScanProfileMergeTask object.
67 * @param send Callback function
68 * @param context Receiver argument for callback.
69 * @return Operation status.
70 */
72 
73 /**
74 * Adds a message to the processing queue. Dequeues a message at the end of the queue to submit
75 * to the pipe for scheduling if no other job is currently pending.
76 *
77 * @public @memberof GoWebScanProfileMergeTask
78 * @param task GoWebScanProfileMergeTask object.
79 * @param msg Tile list message to enqueue.
80 * @return Operation status.
81 */
83 
84 #include <GoWebScanSdk/GoWebScanProfileMergeTask.x.h>
85 
86 #endif
Declares the GoWebScanPipeTask class.
kStatus GoWebScanProfileMergeTask_Construct(GoWebScanProfileMergeTask *task, GoWebScanProcess process, GoWebScanConfigGroup configGroup, kBool presenceDetection, kAlloc allocator)
Constructs a GoWebScanProfileMergeTask object.
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
kStatus GoWebScanProfileMergeTask_SetReceiver(GoWebScanProfileMergeTask task, GoWebScanPipeSendFx send, kPointer context)
Sets the handler for receiving merged system profile tiles.
kStatus GoWebScanProfileMergeTask_Send(GoWebScanProfileMergeTask task, GoWebScanPipeMsg msg)
Adds a message to the processing queue.
Essential GoWebScan declarations.
Represents a container for group-level parameters which are translated from user parameters set in Go...
Represents a task for merging profile tiles along X-axis from the cameras in a top or bottom group...
Base class for a msg that can be processed with a GoWebScanPipeTask and submitted to the GoWebScanPip...
Declares a GoWebScanConfig object.