DYTSrouce/Tool/matlab/include/nav/planningcodegen_cghelpers.hpp
2024-11-22 23:19:31 +08:00

89 lines
4.3 KiB
C++

// Copyright 2019-2021 The MathWorks, Inc.
/**
* @file
* @brief Helper functions used only during codegen (C wrappers for nav::searchTree)
*/
#ifndef PLANNINGCODEGEN_CGHELPERS_HPP
#define PLANNINGCODEGEN_CGHELPERS_HPP
#include "planningcodegen_utils.hpp"
// namespace is NOT supported
EXTERN_C PLANNINGCODEGEN_API void* planningcodegen_createTree(real64_T* state, real64_T sz);
EXTERN_C PLANNINGCODEGEN_API void planningcodegen_destructTree(void* tree);
EXTERN_C PLANNINGCODEGEN_API void planningcodegen_configureCommonCSMetric(
void* tree,
const real64_T* topologies,
const real64_T* weight,
real64_T size);
EXTERN_C PLANNINGCODEGEN_API void planningcodegen_configureDubinsMetric(void* tree,
real64_T turningRadius,
boolean_T isReversed);
EXTERN_C PLANNINGCODEGEN_API void planningcodegen_configureReedsSheppMetric(void* tree,
real64_T turningRadius,
real64_T reverseCost,
boolean_T isReversed);
EXTERN_C PLANNINGCODEGEN_API real64_T planningcodegen_getNumNodes(void* tree);
EXTERN_C PLANNINGCODEGEN_API boolean_T planningcodegen_insertNode(void* tree,
real64_T* data,
real64_T sz,
real64_T parentId,
real64_T* newIdx);
EXTERN_C PLANNINGCODEGEN_API boolean_T
planningcodegen_insertNodeWithPrecomputedCost(void* tree,
real64_T* data,
real64_T sz,
real64_T precomputedCost,
real64_T parentId,
real64_T* newIdx);
EXTERN_C PLANNINGCODEGEN_API real64_T planningcodegen_nearestNeighbor(void* tree,
real64_T* state,
real64_T sz);
EXTERN_C PLANNINGCODEGEN_API boolean_T planningcodegen_getNodeState(void* tree,
real64_T idx,
real64_T* state);
EXTERN_C PLANNINGCODEGEN_API void planningcodegen_tracebackToRoot(void* tree,
real64_T nodeId,
real64_T* nodeStateSeq,
real64_T* numNodes);
EXTERN_C PLANNINGCODEGEN_API real64_T planningcodegen_getNodeCostFromRoot(void* tree, real64_T idx);
EXTERN_C PLANNINGCODEGEN_API void planningcodegen_setBallRadiusConstant(void* tree, real64_T rc);
EXTERN_C PLANNINGCODEGEN_API void planningcodegen_setMaxConnectionDistance(void* tree,
real64_T dist);
EXTERN_C PLANNINGCODEGEN_API void planningcodegen_near(void* tree,
real64_T* state,
real64_T* nearStateIds,
real64_T* numNearStates);
EXTERN_C PLANNINGCODEGEN_API void planningcodegen_inspect(void* tree, real64_T* data);
EXTERN_C PLANNINGCODEGEN_API real64_T planningcodegen_rewire(void* tree,
real64_T nodeIdx,
real64_T newParentNodeIdx);
EXTERN_C PLANNINGCODEGEN_API real64_T
planningcodegen_rewireWithPrecomputedCost(void* tree,
real64_T nodeIdx,
real64_T newParentNodeIdx,
real64_T precomputedCost);
#endif