123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #ifndef _LOC_POINT_HPP_
- #define _LOC_POINT_HPP_
- #include "point.h"
- #include "line_fit.h"
- struct loc_message;
- struct loc_point:point
- {
- int64_t m_time;
- int m_ct;
- uint32_t m_cid;
- uint8_t m_type;
- int m_sid;
- int m_site_cell_index = -1;
- uint64_t m_time_tmp = 0;
- float m_acc;
- float m_rav;
- int m_cell_index = -1;
- std::string m_direction;
- double m_speed_change_rate = 0.0;
- int m_cred_level;
- int m_tof[2];
- int16_t m_rsp[2];
- int m_step;
- double m_area;
- point m_sol[2];
- double m_dist;
- double m_speed;
- double m_speed_avg = 0;
- double m_angle; // 输出角度信息到历史记录zengmg
- int m_stat;
- bool m_useless;
- double m_dist1; //smooth phase 1
- double m_dist2; //smooth phase 3
- double m_smooth_x;
- double m_smooth_y;
- fit_result m_k;
- fit_result&set_k(const fit_result&k)
- {
- return m_k=k;
- }
- loc_point();
- const point& operator[](int i)const
- {
- return m_sol[i];
- }
- point& operator[](int i)
- {
- return m_sol[i];
- }
- double loc_dist(const point&pt)const
- {
- return m_sol[0].dist_direct(pt);
- }
- double loc_dist(const loc_point&lp)const
- {
- return m_sol[0].dist_direct(lp.m_sol[0]);
- }
- bool is_same_site(const loc_point&o)const
- {
- return m_sid==o.m_sid;
- }
- double time_off(const loc_point&o)const
- {
- return (o.m_time-m_time)/1000.;
- }
- double ct_off(const loc_point&o)const
- {
- return o.m_ct-m_ct;
- }
- void debug_out(const char * str="")const ;
- void set_sol(int i,const point&p) ;
- bool b_50m()const
- {
- static int tof_50m=50/(15.65*2.996*1e-4);
- return m_tof[0]==0?m_tof[1]>tof_50m:m_tof[0]>tof_50m;
- }
- loc_point& reset() ;
- int inc_cl(int cred_level) ;
- int set_cl(int cred_level) ;
- int cl()const ;
- void set_source(const loc_message&li,const loc_message&li2) ;
- void set_source(const loc_message&li) ;
- };
- #endif
|