#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 using namespace std; /******************************* 航迹起始类 **************************************************/ class Track_Init { public: //航迹起始逻辑法 int track_init_process_logic( std::vector *point_recv, //输入点迹 std::vector *trust_track, //可靠航迹 std::vector > *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 point_process; //要处理的点迹 void point_temp_track_asso(std::vector > *temp_track); //临时航迹与点迹关联 void point_track_head_asso( std::vector > *temp_track); //航迹头与点迹关联 void tmp_track_to_trust_track( std::vector *trust_track, //临时航迹转可靠航迹 std::vector > *temp_track, struct Track Trust_Track_Output[MAX_TRACK_NUM][10], int *Trust_track_num_Output); void tmp_track_die(std::vector > *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