59 lines
2.5 KiB
C++
59 lines
2.5 KiB
C++
#ifndef TRACK_INIT_H
|
||
#define TRACK_INIT_H
|
||
#include "data_process_class_dll.h"
|
||
#include "track_index_mangement.h"
|
||
#include "parameters.h"
|
||
#include "struct.h"
|
||
#include <vector>
|
||
|
||
using namespace std;
|
||
|
||
/******************************* 航迹起始类 **************************************************/
|
||
class Track_Init
|
||
{
|
||
public:
|
||
|
||
//航迹起始逻辑法
|
||
int track_init_process_logic( std::vector<PointRecv> *point_recv, //输入点迹
|
||
std::vector<Trust_Track> *trust_track, //可靠航迹
|
||
std::vector <std::vector<Temp_track>> *temp_track,
|
||
struct Track Trust_Track_Output[MAX_TRACK_NUM][10],
|
||
int *Trust_track_num_Output
|
||
);
|
||
|
||
Track_Init();
|
||
void reset();
|
||
|
||
private:
|
||
|
||
long long temp_track_id = 0; //临时航迹id
|
||
|
||
std::vector<PointRecv> point_process; //要处理的点迹
|
||
|
||
void point_temp_track_asso(std::vector <std::vector<Temp_track>> *temp_track); //临时航迹与点迹关联
|
||
|
||
void point_track_head_asso( std::vector <std::vector<Temp_track>> *temp_track); //航迹头与点迹关联
|
||
|
||
void tmp_track_to_trust_track( std::vector <Trust_Track> *trust_track, //临时航迹转可靠航迹
|
||
std::vector <std::vector<Temp_track>> *temp_track,
|
||
struct Track Trust_Track_Output[MAX_TRACK_NUM][10],
|
||
int *Trust_track_num_Output);
|
||
|
||
void tmp_track_die(std::vector <std::vector<Temp_track>> *temp_track);//临时航迹消亡
|
||
|
||
double alpha_cal_track_init(double x0,double y0,double x1,double y1,double x2,double y2); //计算夹角
|
||
|
||
int track_init_prohibit(double r, double azi); //判断目标是否位于航迹起始屏蔽区 是返回1 否返回0
|
||
|
||
const uint64_t kSeed = 0x243F6A8885A308D3ULL;
|
||
uint64_t mix64(uint64_t x); // splitmix64 混合函数:对任意 64bit 输入产生雪崩均匀的 64bit 输出
|
||
uint64_t quantize(double v, double scale); // 量化:把 double 映射到整数域,可容忍 ±0.5/scale 的浮点噪声
|
||
uint64_t bits_of(double v); // bit-exact:直接使用 IEEE754 位模式(-0.0 归一为 +0.0,NaN 归一)
|
||
uint16_t fold16(uint64_t h); // 把 64bit 折叠成 16bit,充分使用全部熵
|
||
uint16_t computeFingerprint(double r, double azi, double vr, double RCS, long long CPI_time); //计算航迹指纹
|
||
|
||
Track_Ind_Mangement track_index_mangement;
|
||
|
||
};
|
||
#endif // TRACK_INIT_H
|