QTrk
Functions
API - C

API functions available to a C or .NET program. More...

Functions

CDLL_EXPORT QueuedTracker *DLL_CALLCONV QTrkCreateInstance (QTrkSettings *cfg)
 Create a QueuedTracker instance and return a pointer to it. More...
 
CDLL_EXPORT void DLL_CALLCONV QTrkFreeInstance (QueuedTracker *qtrk)
 Free a QueuedTracker instance. More...
 
CDLL_EXPORT void DLL_CALLCONV QTrkSetLocalizationMode (QueuedTracker *qtrk, LocMode_t locType)
 Select which algorithm is to be used. More...
 
CDLL_EXPORT void DLL_CALLCONV QTrkScheduleLocalization (QueuedTracker *qtrk, void *data, int pitch, QTRK_PixelDataType pdt, const LocalizationJob *jobInfo)
 Add a job to the queue to be processed. A job entails running the required algorithms on a single region of interest. More...
 
CDLL_EXPORT void DLL_CALLCONV QTrkClearResults (QueuedTracker *qtrk)
 
CDLL_EXPORT void DLL_CALLCONV QTrkFlush (QueuedTracker *qtrk)
 
CDLL_EXPORT int DLL_CALLCONV QTrkScheduleFrame (QueuedTracker *qtrk, void *imgptr, int pitch, int width, int height, ROIPosition *positions, int numROI, QTRK_PixelDataType pdt, const LocalizationJob *jobInfo)
 
CDLL_EXPORT void DLL_CALLCONV QTrkSetRadialZLUT (QueuedTracker *qtrk, float *data, int count, int planes, float *zcmp=0)
 
CDLL_EXPORT void DLL_CALLCONV QTrkGetRadialZLUT (QueuedTracker *qtrk, float *dst)
 
CDLL_EXPORT void DLL_CALLCONV QTrkGetRadialZLUTSize (QueuedTracker *qtrk, int *count, int *planes, int *radialsteps)
 
CDLL_EXPORT void DLL_CALLCONV QTrkBuildLUT (QueuedTracker *qtrk, void *data, int pitch, QTRK_PixelDataType pdt, bool imageLUT, int plane)
 
CDLL_EXPORT void DLL_CALLCONV QTrkFinalizeLUT (QueuedTracker *qtrk)
 
CDLL_EXPORT int DLL_CALLCONV QTrkGetResultCount (QueuedTracker *qtrk)
 
CDLL_EXPORT int DLL_CALLCONV QTrkFetchResults (QueuedTracker *qtrk, LocalizationResult *results, int maxResults)
 
CDLL_EXPORT int DLL_CALLCONV QTrkGetQueueLength (QueuedTracker *qtrk, int *maxQueueLen)
 
CDLL_EXPORT bool DLL_CALLCONV QTrkIsIdle (QueuedTracker *qtrk)
 
CDLL_EXPORT void DLL_CALLCONV QTrkGetProfileReport (QueuedTracker *qtrk, char *dst, int maxStrLen)
 
CDLL_EXPORT void DLL_CALLCONV QTrkGetWarnings (QueuedTracker *qtrk, char *dst, int maxStrLen)
 
CDLL_EXPORT void DLL_CALLCONV QTrkGetComputedConfig (QueuedTracker *qtrk, QTrkComputedConfig *cfg)
 

Detailed Description

API functions available to a C or .NET program.

These DLLs are compiled by the cputrack and cudatrack projects.

Function Documentation

§ QTrkBuildLUT()

CDLL_EXPORT void DLL_CALLCONV QTrkBuildLUT ( QueuedTracker qtrk,
void *  data,
int  pitch,
QTRK_PixelDataType  pdt,
bool  imageLUT,
int  plane 
)

Definition at line 64 of file qtrk_c_api.cpp.

65 {
66  qtrk->BuildLUT(data, pitch, pdt, /*imageLUT,*/ plane);
67 }
virtual void BuildLUT(void *data, int pitch, QTRK_PixelDataType pdt, int plane, vector2f *known_pos=0)=0
Add a new lookup table plane.

§ QTrkClearResults()

CDLL_EXPORT void DLL_CALLCONV QTrkClearResults ( QueuedTracker qtrk)

Definition at line 30 of file qtrk_c_api.cpp.

31 {
32  qtrk->ClearResults();
33 }
virtual void ClearResults()=0
Clear results.

§ QTrkCreateInstance()

CDLL_EXPORT QueuedTracker* DLL_CALLCONV QTrkCreateInstance ( QTrkSettings cfg)

Create a QueuedTracker instance and return a pointer to it.

Parameters
[in]cfgPointer to the structure with the desired tracking settings.
Returns
Pointer to the created QTrk instance.

Definition at line 5 of file qtrk_c_api.cpp.

6 {
7  return CreateQueuedTracker(*cfg);
8 }
QueuedTracker * CreateQueuedTracker(const QTrkComputedConfig &cc)
Helper function to create a QueuedTracker instance.

§ QTrkFetchResults()

CDLL_EXPORT int DLL_CALLCONV QTrkFetchResults ( QueuedTracker qtrk,
LocalizationResult results,
int  maxResults 
)

Definition at line 80 of file qtrk_c_api.cpp.

81 {
82  return qtrk->FetchResults(results, maxResults);
83 }
virtual int FetchResults(LocalizationResult *results, int maxResults)=0
Fetch available results.

§ QTrkFinalizeLUT()

CDLL_EXPORT void DLL_CALLCONV QTrkFinalizeLUT ( QueuedTracker qtrk)

Definition at line 69 of file qtrk_c_api.cpp.

70 {
71  qtrk->FinalizeLUT();
72 }
virtual void FinalizeLUT()=0
Finalize the lookup tables in memory.

§ QTrkFlush()

CDLL_EXPORT void DLL_CALLCONV QTrkFlush ( QueuedTracker qtrk)

Definition at line 35 of file qtrk_c_api.cpp.

36 {
37  qtrk->Flush();
38 }
virtual void Flush()=0
Stop waiting for more jobs to do, and just process the current batch.

§ QTrkFreeInstance()

CDLL_EXPORT void DLL_CALLCONV QTrkFreeInstance ( QueuedTracker qtrk)

Free a QueuedTracker instance.

Parameters
[in]qtrkPointer to the qtrk instance of destroy.

Definition at line 10 of file qtrk_c_api.cpp.

11 {
12  delete qtrk;
13 }

§ QTrkGetComputedConfig()

CDLL_EXPORT void DLL_CALLCONV QTrkGetComputedConfig ( QueuedTracker qtrk,
QTrkComputedConfig cfg 
)

Definition at line 107 of file qtrk_c_api.cpp.

108 {
109  *cfg = qtrk->cfg;
110 }
QTrkComputedConfig cfg
The settings used by this instance of QueuedTracker.

§ QTrkGetProfileReport()

CDLL_EXPORT void DLL_CALLCONV QTrkGetProfileReport ( QueuedTracker qtrk,
char *  dst,
int  maxStrLen 
)

Definition at line 96 of file qtrk_c_api.cpp.

97 {
98  strncpy(dst, qtrk->GetProfileReport().c_str(), maxStrLen);
99 }
virtual std::string GetProfileReport()
Get the output of performance profiling.

§ QTrkGetQueueLength()

CDLL_EXPORT int DLL_CALLCONV QTrkGetQueueLength ( QueuedTracker qtrk,
int *  maxQueueLen 
)

Definition at line 86 of file qtrk_c_api.cpp.

87 {
88  return qtrk->GetQueueLength(maxQueueLen);
89 }
virtual int GetQueueLength(int *maxQueueLen=0)=0
Get the lengths of the queue of jobs to be handled.

§ QTrkGetRadialZLUT()

CDLL_EXPORT void DLL_CALLCONV QTrkGetRadialZLUT ( QueuedTracker qtrk,
float *  dst 
)

Definition at line 53 of file qtrk_c_api.cpp.

54 {
55  qtrk->GetRadialZLUT(dst);
56 }
virtual void GetRadialZLUT(float *dst)=0
Get the radial lookup tables used for z tracking.

§ QTrkGetRadialZLUTSize()

CDLL_EXPORT void DLL_CALLCONV QTrkGetRadialZLUTSize ( QueuedTracker qtrk,
int *  count,
int *  planes,
int *  radialsteps 
)

Definition at line 58 of file qtrk_c_api.cpp.

59 {
60  qtrk->GetRadialZLUTSize(*count, *planes, *radialsteps);
61 }
virtual void GetRadialZLUTSize(int &count, int &planes, int &radialsteps)=0
Get the dimensions of the radial lookup table data.

§ QTrkGetResultCount()

CDLL_EXPORT int DLL_CALLCONV QTrkGetResultCount ( QueuedTracker qtrk)

Definition at line 75 of file qtrk_c_api.cpp.

76 {
77  return qtrk->GetResultCount();
78 }
virtual int GetResultCount()=0
Get the number of finished localization jobs (=results) available in memory.

§ QTrkGetWarnings()

CDLL_EXPORT void DLL_CALLCONV QTrkGetWarnings ( QueuedTracker qtrk,
char *  dst,
int  maxStrLen 
)

Definition at line 101 of file qtrk_c_api.cpp.

102 {
103  strncpy(dst, qtrk->GetWarnings().c_str(), maxStrLen);
104 }
virtual std::string GetWarnings()
Get a report of encountered errors.

§ QTrkIsIdle()

CDLL_EXPORT bool DLL_CALLCONV QTrkIsIdle ( QueuedTracker qtrk)

Definition at line 91 of file qtrk_c_api.cpp.

92 {
93  return qtrk->IsIdle();
94 }
virtual bool IsIdle()=0
Test to see if the tracker is idle.

§ QTrkScheduleFrame()

CDLL_EXPORT int DLL_CALLCONV QTrkScheduleFrame ( QueuedTracker qtrk,
void *  imgptr,
int  pitch,
int  width,
int  height,
ROIPosition positions,
int  numROI,
QTRK_PixelDataType  pdt,
const LocalizationJob jobInfo 
)

Definition at line 41 of file qtrk_c_api.cpp.

42 {
43  return qtrk->ScheduleFrame(imgptr, pitch, width, height, positions, numROI, pdt, jobInfo);
44 }
virtual int ScheduleFrame(void *imgptr, int pitch, int width, int height, ROIPosition *positions, int numROI, QTRK_PixelDataType pdt, const LocalizationJob *jobInfo)
Schedule an entire frame at once, allowing for further optimizations.

§ QTrkScheduleLocalization()

CDLL_EXPORT void DLL_CALLCONV QTrkScheduleLocalization ( QueuedTracker qtrk,
void *  data,
int  pitch,
QTRK_PixelDataType  pdt,
const LocalizationJob jobInfo 
)

Add a job to the queue to be processed. A job entails running the required algorithms on a single region of interest.

Note
Frame and timestamp in jobInfo are ignored by tracking code itself, but usable for the calling code
Parameters
[in]qtrkPointer to the QueuedTracker instance to be used.
[in]dataPointer to the data. Type specified by pdt.
[in]pitchDistance in bytes between two successive rows of pixels (e.g. address of (0,0) - address of (0,1)).
[in]pdtType of data, specified by QTRK_PixelDataType.
[in]jobInfoStructure with metadata for the ROI to be handled. See LocalizationJob.

Definition at line 25 of file qtrk_c_api.cpp.

26 {
27  qtrk->ScheduleLocalization(data,pitch,pdt,jobInfo);
28 }
virtual void ScheduleLocalization(void *data, int pitch, QTRK_PixelDataType pdt, const LocalizationJob *jobInfo)=0
Add a job to the queue to be processed. A job entails running the required algorithms on a single reg...

§ QTrkSetLocalizationMode()

CDLL_EXPORT void DLL_CALLCONV QTrkSetLocalizationMode ( QueuedTracker qtrk,
LocMode_t  locType 
)

Select which algorithm is to be used.

Parameters
[in]qtrkA pointer to the QueuedTracker instance to use.
[in]locTypeAn integer used as a bitmask for settings based on LocalizeModeEnum.

Definition at line 17 of file qtrk_c_api.cpp.

18 {
19  qtrk->SetLocalizationMode(locType);
20 }
virtual void SetLocalizationMode(LocMode_t locType)=0
Select which algorithm is to be used.

§ QTrkSetRadialZLUT()

CDLL_EXPORT void DLL_CALLCONV QTrkSetRadialZLUT ( QueuedTracker qtrk,
float *  data,
int  count,
int  planes,
float *  zcmp = 0 
)

Definition at line 48 of file qtrk_c_api.cpp.

49 {
50  qtrk->SetRadialZLUT(data, count, planes /*, zcmp*/);
51 }
virtual void SetRadialZLUT(float *data, int count, int planes)=0
Set the radial lookup tables to be used for z tracking.