DYT/Tool/matlab/include/cvstCG_kdtree.h
2024-11-22 23:19:31 +08:00

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