DYT/Tool/matlab/include/shared_autonomous/autonomouscodegen_dubins_tbb_api.hpp
2024-11-22 23:19:31 +08:00

54 lines
1.5 KiB
C++

/* Copyright 2018-2019 The MathWorks, Inc. */
/**
* @file
* External C-API interfaces for Dubins motion primitive calculations (TBB-accelerated).
* To fully support code generation, note that this file needs to be fully
* compliant with the C89/C90 (ANSI) standard.
*/
#ifndef AUTONOMOUSCODEGEN_DUBINS_TBB_API_H_
#define AUTONOMOUSCODEGEN_DUBINS_TBB_API_H_
#ifdef BUILDING_LIBMWAUTONOMOUSCODEGEN
#include "autonomouscodegen/autonomouscodegen_util.hpp"
#else
/* To deal with the fact that PackNGo has no include file hierarchy during test */
#include "autonomouscodegen_util.hpp"
#endif
/**
* @copydoc autonomousDubinsSegmentsCodegen_real64
*
* This function uses TBB to parallelize the computation.
*/
EXTERN_C AUTONOMOUS_CODEGEN_API void autonomousDubinsSegmentsCodegen_tbb_real64(
const real64_T* startPose,
const uint32_T numStartPoses,
const real64_T* goalPose,
const uint32_T numGoalPoses,
const real64_T turningRadius,
const boolean_T* allPathTypes,
const boolean_T isOptimal,
const uint32_T nlhs,
real64_T* distance,
real64_T* segmentLen,
real64_T* segmentType);
/**
* @copydoc autonomousDubinsDistanceCodegen_real64
*
* This function uses TBB to parallelize the computation.
*/
EXTERN_C AUTONOMOUS_CODEGEN_API void autonomousDubinsDistanceCodegen_tbb_real64(
const real64_T* startPose,
const uint32_T numStartPoses,
const real64_T* goalPose,
const uint32_T numGoalPoses,
const real64_T turningRadius,
real64_T* distance);
#endif /* AUTONOMOUSCODEGEN_DUBINS_TBB_API_H_ */