228 lines
13 KiB
C
228 lines
13 KiB
C
/* Copyright 2018-2019 The MathWorks, Inc. */
|
|
#ifndef _KDTREE_
|
|
#define _KDTREE_
|
|
|
|
#ifndef LIBMWKDTREE_API
|
|
#define LIBMWKDTREE_API
|
|
#endif
|
|
|
|
#ifndef EXTERN_C
|
|
#ifdef __cplusplus
|
|
#define EXTERN_C extern "C"
|
|
#else
|
|
#define EXTERN_C extern
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef MATLAB_MEX_FILE
|
|
#include "tmwtypes.h" /* mwSize is defined here */
|
|
#else
|
|
#include "rtwtypes.h"
|
|
#endif
|
|
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeConstruct_single(void** ptr2ptrObj);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeConstruct_double(void** ptr2ptrObj);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeConstructRM_single(void** ptr2ptrObj);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeConstructRM_double(void** ptr2ptrObj);
|
|
|
|
EXTERN_C LIBMWKDTREE_API boolean_T kdtreeNeedsReindex_single(void* ptrObj, void* pData);
|
|
|
|
EXTERN_C LIBMWKDTREE_API boolean_T kdtreeNeedsReindex_double(void* ptrObj, void* pData);
|
|
|
|
EXTERN_C LIBMWKDTREE_API boolean_T kdtreeNeedsReindexRM_single(void* ptrObj, void* pData);
|
|
|
|
EXTERN_C LIBMWKDTREE_API boolean_T kdtreeNeedsReindexRM_double(void* ptrObj, void* pData);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeIndex_single(void* ptrObj,
|
|
void* pData,
|
|
uint32_T dataSize,
|
|
uint32_T dims,
|
|
double numTrees,
|
|
double bucketSize,
|
|
double seed);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeIndex_double(void* ptrObj,
|
|
void* pData,
|
|
uint32_T dataSize,
|
|
uint32_T dims,
|
|
double numTrees,
|
|
double bucketSize,
|
|
double seed);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeIndexRM_single(void* ptrObj,
|
|
void* pData,
|
|
uint32_T dataSize,
|
|
uint32_T dims,
|
|
double numTrees,
|
|
double bucketSize,
|
|
double seed);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeIndexRM_double(void* ptrObj,
|
|
void* pData,
|
|
uint32_T dataSize,
|
|
uint32_T dims,
|
|
double numTrees,
|
|
double bucketSize,
|
|
double seed);
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeBoxSearch_single(void* ptrObj,
|
|
void* roi,
|
|
void** resultIndices);
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeBoxSearch_double(void* ptrObj,
|
|
void* roi,
|
|
void** resultIndices);
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeBoxSearchRM_single(void* ptrObj,
|
|
void* roi,
|
|
void** resultIndices);
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeBoxSearchRM_double(void* ptrObj,
|
|
void* roi,
|
|
void** resultIndices);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeBoxSearchSetOutputs(void* ptrIndices, uint32_T* location);
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeKNNSearch_single(void* ptrObj,
|
|
void* queryData,
|
|
uint32_T numQueries,
|
|
uint32_T numQueryDims,
|
|
uint32_T knn,
|
|
double paramChecks,
|
|
float paramEps,
|
|
void* indices,
|
|
void* dists,
|
|
void* valid,
|
|
int32_T grainSize,
|
|
uint32_T tbbQueryThreshold);
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeKNNSearch_double(void* ptrObj,
|
|
void* queryData,
|
|
uint32_T numQueries,
|
|
uint32_T numQueryDims,
|
|
uint32_T knn,
|
|
double paramChecks,
|
|
double paramEps,
|
|
void* indices,
|
|
void* dists,
|
|
void* valid,
|
|
int32_T grainSize,
|
|
uint32_T tbbQueryThreshold);
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeKNNSearchRM_single(void* ptrObj,
|
|
void* queryData,
|
|
uint32_T numQueries,
|
|
uint32_T numQueryDims,
|
|
uint32_T knn,
|
|
double paramChecks,
|
|
float paramEps,
|
|
void* indices,
|
|
void* dists,
|
|
void* valid,
|
|
int32_T grainSize,
|
|
uint32_T tbbQueryThreshold);
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeKNNSearchRM_double(void* ptrObj,
|
|
void* queryData,
|
|
uint32_T numQueries,
|
|
uint32_T numQueryDims,
|
|
uint32_T knn,
|
|
double paramChecks,
|
|
double paramEps,
|
|
void* indices,
|
|
void* dists,
|
|
void* valid,
|
|
int32_T grainSize,
|
|
uint32_T tbbQueryThresholds);
|
|
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeRadiusSearch_single(void* ptrObj,
|
|
void* queryData,
|
|
uint32_T numQueries,
|
|
uint32_T numQueryDims,
|
|
float radius,
|
|
double paramChecks,
|
|
float paramEps,
|
|
void** resultIndices,
|
|
void** resultDists,
|
|
uint32_T* valid,
|
|
int32_T grainSize,
|
|
uint32_T tbbQueryThresholds);
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeRadiusSearch_double(void* ptrObj,
|
|
void* queryData,
|
|
uint32_T numQueries,
|
|
uint32_T numQueryDims,
|
|
double radius,
|
|
double paramChecks,
|
|
double paramEps,
|
|
void** resultIndices,
|
|
void** resultDists,
|
|
uint32_T* valid,
|
|
int32_T grainSize,
|
|
uint32_T tbbQueryThresholds);
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeRadiusSearchRM_single(void* ptrObj,
|
|
void* queryData,
|
|
uint32_T numQueries,
|
|
uint32_T numQueryDims,
|
|
float radius,
|
|
double paramChecks,
|
|
float paramEps,
|
|
void** resultIndices,
|
|
void** resultDists,
|
|
uint32_T* valid,
|
|
int32_T grainSize,
|
|
uint32_T tbbQueryThresholds);
|
|
|
|
EXTERN_C LIBMWKDTREE_API int32_T kdtreeRadiusSearchRM_double(void* ptrObj,
|
|
void* queryData,
|
|
uint32_T numQueries,
|
|
uint32_T numQueryDims,
|
|
double radius,
|
|
double paramChecks,
|
|
double paramEps,
|
|
void** resultIndices,
|
|
void** resultDists,
|
|
uint32_T* valid,
|
|
int32_T grainSize,
|
|
uint32_T tbbQueryThresholds);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeRadiusSearchSetOutputs_single(void* ptrIndicesIn,
|
|
void* ptrDistsIn,
|
|
uint32_T* ptrIndicesOut,
|
|
float* ptrDistsOut);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeRadiusSearchSetOutputs_double(void* ptrIndicesIn,
|
|
void* ptrDistsIn,
|
|
uint32_T* ptrIndicesOut,
|
|
double* ptrDistsOut);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeDeleteObj_single(void* ptrObj);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeDeleteObj_double(void* ptrObj);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeDeleteObjRM_single(void* ptrObj);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeDeleteObjRM_double(void* ptrObj);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeGetLocationDataPointer_single(void* locationData,
|
|
uint32_T dataSize,
|
|
uint32_T dims,
|
|
void** ptr2locationDataPtr);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeGetLocationDataPointer_double(void* locationData,
|
|
uint32_T dataSize,
|
|
uint32_T dims,
|
|
void** ptr2locationDataPtr);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeDeleteLocationDataPointer_single(void* locationPtr);
|
|
|
|
EXTERN_C LIBMWKDTREE_API void kdtreeDeleteLocationDataPointer_double(void* locationPtr);
|
|
|
|
#endif
|