Files
radar_data_process/data_process_class_dll/track_die.cpp
T

54 lines
1.2 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,
const RDP_parameter& rdp_parameter)
{
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 < rdp_parameter.track_die_quality)
{
die_flag = true;
}
//重点航迹自动消亡
if((*Iter).Track_Mode == 0 && (*Iter).primary_target_flag == 1 && (*Iter).Extrapolate_round > rdp_parameter.track_die_round_pramary)
{
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++;
}
}
};