ThreatSourceLibaray/ThreatSourceNative/include/threat_source.h

70 lines
2.2 KiB
C

#ifndef THREAT_SOURCE_H
#define THREAT_SOURCE_H
#ifdef _WIN32
#ifdef THREATSOURCE_EXPORTS
#define THREATSOURCE_API __declspec(dllexport)
#else
#define THREATSOURCE_API __declspec(dllimport)
#endif
#else
#define THREATSOURCE_API
#endif
#ifdef __cplusplus
extern "C" {
#endif
// 错误码定义
#define THREATSOURCE_SUCCESS 0
#define THREATSOURCE_ERROR_INVALID_PARAM -1
#define THREATSOURCE_ERROR_INIT_FAILED -2
#define THREATSOURCE_ERROR_SIMULATION_FAILED -3
// 仿真管理
THREATSOURCE_API int TS_CreateSimulation();
THREATSOURCE_API int TS_DestroySimulation();
// 导弹相关
THREATSOURCE_API int TS_CreateMissile(
const char* id,
double x, double y, double z, // 初始位置
double vx, double vy, double vz, // 初始速度
double max_speed, // 最大速度
double max_acceleration, // 最大加速度
double max_flight_time, // 最大飞行时间
double max_flight_distance, // 最大飞行距离
double mass // 质量
);
THREATSOURCE_API int TS_ActivateMissile(const char* id);
THREATSOURCE_API int TS_DeactivateMissile(const char* id);
THREATSOURCE_API int TS_FireMissile(const char* id);
THREATSOURCE_API int TS_GetMissilePosition(const char* id, double* x, double* y, double* z);
THREATSOURCE_API int TS_GetMissileVelocity(const char* id, double* vx, double* vy, double* vz);
THREATSOURCE_API int TS_IsMissileActive(const char* id, int* active);
// 目标相关
THREATSOURCE_API int TS_CreateTarget(
const char* id,
double x, double y, double z, // 位置
double orientation // 朝向(弧度)
);
THREATSOURCE_API int TS_ActivateTarget(const char* id);
THREATSOURCE_API int TS_DeactivateTarget(const char* id);
THREATSOURCE_API int TS_GetTargetPosition(const char* id, double* x, double* y, double* z);
THREATSOURCE_API int TS_GetTargetOrientation(const char* id, double* orientation);
// 仿真控制
THREATSOURCE_API int TS_UpdateSimulation(double deltaTime);
THREATSOURCE_API int TS_GetSimulationTime(double* time);
// 事件查询
THREATSOURCE_API int TS_GetLastError(char* buffer, int buffer_size);
#ifdef __cplusplus
}
#endif
#endif // THREAT_SOURCE_H