/* 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_ */