DYT/Tool/matlab/include/uav/uavdubins/uavdubinscodegen/uavdubinscodegen_connection_api.hpp
2024-11-22 23:19:31 +08:00

51 lines
1.5 KiB
C++

/* Copyright 2020 The MathWorks, Inc. */
/**
* @file
* External C-API interfaces for UAV Dubins motion primitive calculations.
* To fully support code generation, note that this file needs to be fully
* compliant with the C89/C90 (ANSI) standard.
*/
#ifndef UAVDUBINSCODEGEN_DUBINS_API_H_
#define UAVDUBINSCODEGEN_DUBINS_API_H_
#ifdef BUILDING_LIBMWUAVDUBINSCODEGEN
#include "uavdubinscodegen/uavdubinscodegen_util.hpp"
#else
/* To deal with the fact that PackNGo has no include file hierarchy during test */
#include "uavdubinscodegen_util.hpp"
#endif
EXTERN_C UAVDUBINSCODEGEN_API void* uavDubinsConnectionObj(const double airSpeed,
const double maxRollAngle, double* flightPathAngleLimit,
double* disabledPathTypes, uint32_T numDisabledPathTypes);
/**
* @brief Free memory and reset to initial state
* @param[in] connObj uavDubinsConnection internal object
*/
EXTERN_C UAVDUBINSCODEGEN_API void uavDubinsConnectionObjCleanup(void* connObj);
/**
* @copydoc uavDubinsDistanceCodegen_real64
*/
EXTERN_C UAVDUBINSCODEGEN_API void uavDubinsDistanceCodegen_real64(
void* connObj,
real64_T* startPose,
const uint32_T numStartPoses,
real64_T* goalPose,
const uint32_T numGoalPoses,
const boolean_T flagOptimal,
const real64_T minTurningRadius,
real64_T* sp,
real64_T* g,
real64_T* fpa,
real64_T* a,
real64_T* mtr,
real64_T* h,
real64_T* mt,
real64_T* ml);
#endif /* UAVDUBINSCODEGEN_DUBINS_API_H_ */