由于项目需求在vs2010上过编,之前那版用不了。新msvc编译后的abi与早期不兼容,故重写一个纯C畅享版。

具体用法同上一篇一模一样,只是函数名改了一下

#pragma once

/* TacviewRender.h */
#ifndef TACVIEW_RENDER_H
#define TACVIEW_RENDER_H

#include <Windows.h>
//Author:LeoRanbom
/* 旋转方向枚举 */
typedef enum {
    CLOCKWISE,
    COUNTER_CLOCKWISE
} RotionalDirection;

/* 函数声明 - C89要求函数声明带void表示无参数 */
int TacviewRender_init(const char* path); //初始化文件
void TacviewRender_config(int begin_angle, RotionalDirection t_rotional_direction); //初始化航向角度坐标系
void TacviewRender_log(const char* message); // 日志写入,这个可以不使用
void TacviewRender_close(void); //关闭写入,这个也可以不适用
void TacviewRender_createTacview(void); // 给文件初始化tacview格式头
void TacviewRender_recordTime(void); //每一次大循环使用一次,记录时间
void TacviewRender_recordPlane(const char* id, double lon, double lat, double alt,
    double roll, double pitch, double yaw,
    const char* name, const char* color); //记录飞机
void TacviewRender_recordMissile(const char* id, double lon, double lat, double alt,
    double roll, double pitch, double yaw,
    const char* name, const char* color); //记录导弹
void TacviewRender_version(void); //输出测试版本信息
double TacviewRender_transferTo(double angle);
/* 在TacviewRender.h中添加函数声明 */

/* 记录导弹爆炸事件
 * id: 导弹ID(如"A01004")
 * lon,lat,alt: 爆炸位置的经纬度和高度
 * roll,pitch,yaw: 爆炸时的姿态角
 * color: 爆炸显示颜色
 * radius: 爆炸半径
 */
void TacviewRender_recordExplosion(const char* id, double lon, double lat, double alt,
    double roll, double pitch, double yaw,
    const char* color, double radius); //导弹击中或脱靶调用。会渲染爆炸,并且将导弹模型消失处理

#endif /* TACVIEW_RENDER_H */