The VLWorker is a wrapper for an Worker object. The Worker object manages the tracking thread. More...
Inherits IDisposable.
Public Member Functions | |
VLWorker (VLAbstractApplicationWrapper aap, bool syncWorker=false) | |
Constructor of VLWorker. More... | |
bool | AddAnchorToWorldTransformListener (string anchorName, ExtrinsicDataWrapperCallback listener, IntPtr clientData) |
Registers a listener for anchor to world transform events. More... | |
bool | AddDebugImageListener (ImageWrapperCallback listener, IntPtr clientData) |
Registers a listener for debug image events. DebugImageListeners are removed automatically, whenever the tracker gets destroyed. More... | |
bool | AddExtrinsicDataListener (ExtrinsicDataWrapperCallback listener, IntPtr clientData) |
Registers a listener for extrinsic data events. More... | |
bool | AddImageListener (ImageWrapperCallback listener, IntPtr clientData) |
Registers a listener for image events. More... | |
bool | AddIntrinsicDataListener (IntrinsicDataWrapperCallback listener, IntPtr clientData) |
Registers a listener for intrinsic data events. More... | |
bool | AddPerformanceInfoListener (StringCallback listener, IntPtr clientData) |
Registers a listener for performance information events. More... | |
bool | AddTrackingStateListener (StringCallback listener, IntPtr clientData) |
Registers a listener for tracking state events. More... | |
delegate void | BoolCallback (bool data, IntPtr clientData) |
void | Dispose () |
Explicitly releases references to unmanaged resources. More... | |
delegate void | ExtrinsicDataWrapperCallback (IntPtr handle, IntPtr clientData) |
bool | GetDisposed () |
VLImageWrapper | GetImageSync () |
Returns a pointer to the camera image. More... | |
VLExtrinsicDataWrapper | GetNodeExtrinsicDataSync (string node, string key) |
VLImageWrapper | GetNodeImageSync (string node, string key) |
VLIntrinsicDataWrapper | GetNodeIntrinsicDataSync (string node, string key) |
VLTrackingState | GetNodeTrackingStateSync (string node) |
delegate void | ImageWrapperCallback (IntPtr handle, IntPtr clientData) |
delegate void | IntrinsicDataWrapperCallback (IntPtr handle, IntPtr clientData) |
bool | IsRunning () |
Returns whether the thread is currently running or not. More... | |
delegate void | JsonStringAndBinaryCallback ([MarshalAs(UnmanagedType.LPStr)] string description, IntPtr data, System.UInt32 dataSize, IntPtr clientData) |
delegate void | JsonStringCallback ([MarshalAs(UnmanagedType.LPStr)] string errorJson, [MarshalAs(UnmanagedType.LPStr)] string dataJson, IntPtr clientData) |
bool | PollEvents () |
Calls the registered listeners for the enqueued events. More... | |
bool | ProcessCallbacks () |
Executes all enqueued callbacks. More... | |
bool | PushCommand (VLWorkerCommands.CommandBase cmd, JsonStringCallback callback, IntPtr clientData) |
Enqueues a command for the tracking thread. More... | |
bool | PushJsonAndBinaryCommand (string jsonString, IntPtr binaryDataPtr, UInt32 binaryDataSize, JsonStringAndBinaryCallback callback, IntPtr clientData) |
Enqueues a command for the tracking thread using a JSON string and binary data - THIS FUNCTION IS CONSIDERED AS BETA AND MAY BE MATTER OF CHANGE. More... | |
bool | PushJsonCommand (string jsonString, JsonStringCallback callback, IntPtr clientData) |
Enqueues a command for the tracking thread using a JSON string. More... | |
bool | RemoveAnchorToWorldTransformListener (string anchorName, ExtrinsicDataWrapperCallback listener, IntPtr clientData) |
Unregisters a listener from anchor to world transform events. More... | |
bool | RemoveDebugImageListener (ImageWrapperCallback listener, IntPtr clientData) |
Unregisters a listener from debug image events. More... | |
bool | RemoveExtrinsicDataListener (ExtrinsicDataWrapperCallback listener, IntPtr clientData) |
Unregisters a listener from extrinsic data events. More... | |
bool | RemoveImageListener (ImageWrapperCallback listener, IntPtr clientData) |
Unregisters a listener from image events. More... | |
bool | RemoveIntrinsicDataListener (IntrinsicDataWrapperCallback listener, IntPtr clientData) |
Unregisters a listener from intrinsic data events. More... | |
bool | RemovePerformanceInfoListener (StringCallback listener, IntPtr clientData) |
Unregisters a listener from performance info events. More... | |
bool | RemoveTrackingStateListener (StringCallback listener, IntPtr clientData) |
Unregisters a listener from tracking state events. More... | |
bool | RunOnceSync () |
Processes the enqueued commands and the tracking once. More... | |
bool | SetNodeExtrinsicDataSync (VLExtrinsicDataWrapper extrinsicData, string node, string key) |
bool | SetNodeImageSync (VLImageWrapper image, string node, string key) |
bool | SetNodeIntrinsicDataSync (VLIntrinsicDataWrapper intrinsicData, string node, string key) |
bool | Start () |
Starts the tracking thread. More... | |
bool | Stop () |
Stops the tracking thread. More... | |
delegate void | StringCallback ([MarshalAs(UnmanagedType.LPStr)] string message, IntPtr clientData) |
bool | WaitEvents (uint timeout) |
Waits for enqueued events and calls the registered listeners. More... | |
The VLWorker is a wrapper for an Worker object. The Worker object manages the tracking thread.
|
inline |
Constructor of VLWorker.
|
inline |
Registers a listener for anchor to world transform events.
anchorName | Name of the anchor which the listener should be getting the extrinsic from. |
listener | Listener which will be notified during the event processing, if an extrinsic data event occurred. |
clientData | The listener function will be called with the given pointer value as parameter. |
true
, if the listener was registered successfully; false
otherwise.
|
inline |
Registers a listener for debug image events. DebugImageListeners are removed automatically, whenever the tracker gets destroyed.
listener | Listener which will be notified during the event processing, if an debug image event occurred. |
clientData | The listener function will be called with the given pointer value as parameter. |
true
, if the listener was registered successfully; false
otherwise.
|
inline |
Registers a listener for extrinsic data events.
listener | Listener which will be notified during the event processing, if an extrinsic data event occurred. |
clientData | The listener function will be called with the given pointer value as parameter. |
true
, if the listener was registered successfully; false
otherwise.
|
inline |
Registers a listener for image events.
listener | Listener which will be notified during the event processing, if an image event occurred. |
clientData | The listener function will be called with the given pointer value as parameter. |
true
, if the listener was registered successfully; false
otherwise.
|
inline |
Registers a listener for intrinsic data events.
listener | Listener which will be notified during the event processing, if an intrinsic data event occurred. |
clientData | The listener function will be called with the given pointer value as argument. |
true
, if the listener was registered successfully; false
otherwise.
|
inline |
Registers a listener for performance information events.
listener | Listener which will be notified during the event processing, if a performance info state event occurred. |
clientData | The listener function will be called with the given pointer value as parameter. |
true
, if the listener was registered successfully; false
otherwise.
|
inline |
Registers a listener for tracking state events.
listener | Listener which will be notified during the event processing, if an tracking state event occurred. |
clientData | The listener function will be called with the given pointer value as parameter. |
true
, if the listener was registered successfully; false
otherwise.
|
inline |
Explicitly releases references to unmanaged resources.
Call Dispose when you are finished using the VLWorker. The Dispose method leaves the VLWorker in an unusable state. After calling Dispose, you must release all references to the VLWorker so the garbage collector can reclaim the memory that the VLWorker was occupying.
|
inline |
Returns a pointer to the camera image.
This function only works, if the Worker was created as synchronous instance.
NOTICE: This functions is experimental and might get removed in future.
VLImageWrapper
, on success; null
, otherwise.
|
inline |
Returns whether the thread is currently running or not.
true
, if the thread is running; false
otherwise.
|
inline |
Calls the registered listeners for the enqueued events.
Listeners aren't called immediately from the tracking thread in order to avoid synchronisation problems. Instead this method should be called regularly from the main thread.
true
, if the events where processed successfully; false
otherwise.
|
inline |
Executes all enqueued callbacks.
Callbacks aren't called immediately from the tracking thread in order to avoid synchronisation problems. Instead this method should be called regularly from the main thread.
true
, if the command was enqueue successfully; false
otherwise.
|
inline |
Enqueues a command for the tracking thread.
A callback will called once after the processing has finished.
The different commands are defined inside the VLWorkerCommands namespace.
cmd | The command object. |
callback | Callback, which will be called inside ProcessCallbacks after the command was processed. |
clientData | The callback function will be called with the given pointer value. |
true
, if the command was enqueue successfully; false
otherwise.
|
inline |
Enqueues a command for the tracking thread using a JSON string and binary data - THIS FUNCTION IS CONSIDERED AS BETA AND MAY BE MATTER OF CHANGE.
The command gets processed asynchronously by the tracking thread and a callback will called once after the processing has finished. Since the memory is pinned until the callback is called in order to prevent multiple copies, the static FreeBinaryMemory() function should be called from the callback, in order to free allocated memory, which has eventually beeing passed to the function.
jsonString | The command with all necessary data as JSON string. The JSON string should describe the data |
binaryDataPtr | Binary data ptr, which is a pinned gcHandle memory pointer, which should be given to the vlSDK |
binaryDataSize | The size of the Binary data. |
callback | Callback, which will be called inside ProcessCallbacks after the command was processed. |
clientData | The callback function will be called with the given pointer value. |
true
, if the command was enqueue successfully; false
otherwise (usually some JSON syntax error).
|
inline |
Enqueues a command for the tracking thread using a JSON string.
The command gets processed asynchronously by the tracking thread and a callback will called once after the processing has finished.
You need to make sure, that the JSON string has the expected format. Therefore you might want to use the VLWorker.PushCommand functions instead. This function will ensure that the command will be pushed as expected.
jsonString | The command with all necessary data as JSON string. |
callback | Callback, which will be called inside ProcessCallbacks after the command was processed. |
clientData | The callback function will be called with the given pointer value. |
true
, if the command was enqueue successfully; false
otherwise (usually some JSON syntax error).
|
inline |
Unregisters a listener from anchor to world transform events.
anchorName | Name of the anchor from which the listener should be removed. |
listener | Listener which should be unregistered. |
clientData | Pointer value used as parameter during the registration of the listener. |
true
, if the listener was unregistered successfully; false
otherwise.
|
inline |
Unregisters a listener from debug image events.
listener | Listener which should be unregistered. |
clientData | Pointer value used as parameter during the registration of the listener. |
true
, if the listener was unregistered successfully; false
otherwise.
|
inline |
Unregisters a listener from extrinsic data events.
listener | Listener which should be unregistered. |
clientData | Pointer value used as parameter during the registration of the listener. |
true
, if the listener was unregistered successfully; false
otherwise.
|
inline |
Unregisters a listener from image events.
listener | Listener which should be unregistered. |
clientData | Pointer value used as parameter during the registration of the listener. |
true
, if the listener was unregistered successfully; false
otherwise.
|
inline |
Unregisters a listener from intrinsic data events.
listener | Listener which should be unregistered. |
clientData | Pointer value used as parameter during the registration of the listener. |
true
, if the listener was unregistered successfully; false
otherwise.
|
inline |
Unregisters a listener from performance info events.
listener | Listener which should be unregistered. |
clientData | Pointer value used as parameter during the registration of the listener. |
true
, if the listener was unregistered successfully; false
otherwise.
|
inline |
Unregisters a listener from tracking state events.
listener | Listener which should be unregistered. |
clientData | Pointer value used as parameter during the registration of the listener. |
true
, if the listener was unregistered successfully; false
otherwise.
|
inline |
Processes the enqueued commands and the tracking once.
This function only works, if the Worker was created as synchronous instance. The target number of FPS will get ignored. After calling this function you should call VLWorker.ProcessCallbacks and VLWorker.PollEvents to invoke callbacks and registered listeners.
true
, on success; false
otherwise.
|
inline |
Starts the tracking thread.
true
, if the thread was started successfully; false
otherwise.
|
inline |
Stops the tracking thread.
true
, if the thread was stopped successfully; false
otherwise.
|
inline |
Waits for enqueued events and calls the registered listeners.
Listeners aren't called immediately from the tracking thread in order to avoid synchronisation problems. Instead this method should be called regularly from the main thread.
timeout | Number of milliseconds before stopping to wait. Under normal circumstances this shouldn't happen, but in case something went wrong, we don't want to wait indefinitely. |
true
, on success or false
, if there was an error while waiting for events. false
is also returned, if the tracking is enabled, but the timeout elapsed without an event arriving.