53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
#include "track_die.h"
|
|
#include "kalman.h"
|
|
#include "coor_trans.h"
|
|
#include <cmath>
|
|
#include <cstring>
|
|
#include <vector>
|
|
using namespace std;
|
|
|
|
void Track_Die::track_die_process( std::vector <Trust_Track> *trust_track,
|
|
int Track_die_Index_Output[],
|
|
int *Track_die_num_Output)
|
|
{
|
|
|
|
std::vector <Trust_Track>::iterator Iter;
|
|
for (Iter=trust_track->begin(); Iter!=trust_track->end();)
|
|
{
|
|
bool die_flag = false;
|
|
|
|
//手动删除
|
|
if((*Iter).manual_delete_flag == 1)
|
|
{
|
|
die_flag = true;
|
|
}
|
|
|
|
//非重点航迹自动消亡
|
|
if((*Iter).Track_Mode == 0 && (*Iter).primary_target_flag == 0 && (*Iter).Quality < TRACK_DIE_QUALITY)
|
|
{
|
|
die_flag = true;
|
|
}
|
|
|
|
//重点航迹自动消亡
|
|
if((*Iter).Track_Mode == 0 && (*Iter).primary_target_flag == 1 && (*Iter).Extrapolate_round > TRACK_DIE_ROUND_PRIMARY)
|
|
{
|
|
die_flag = true;
|
|
}
|
|
|
|
if(die_flag)
|
|
{
|
|
//输出消亡信息
|
|
*Track_die_num_Output=*Track_die_num_Output+1;
|
|
Track_die_Index_Output[*Track_die_num_Output-1]=(*Iter).Track_Index;
|
|
|
|
trust_track->erase(Iter);
|
|
Iter=trust_track->begin();
|
|
}
|
|
else
|
|
{
|
|
Iter++;
|
|
}
|
|
}
|
|
|
|
};
|