1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #ifndef __BASE_CARD__
- #define __BASE_CARD__
- #include "base_data.h"
- #include "classdef.h"
- class Card;
- struct position_interface
- {
- virtual point_2 get_position()=0;
- virtual bool save_point() = 0;
- };
- struct card:position_interface
- {
- const static int MAX_HIS_LOCATION=100;
- std::weak_ptr<position_interface> m_pi;
- std::shared_ptr<Card> m_card;
-
- area * m_area;
-
- deque<st_coord> ori_list_;
-
-
-
-
-
- st_coord pin_point(uint16_t &ct)
- {
- st_coord stc;
- stc.m_ct = m_card->time_center_stamp;
- if (ct == stc.m_ct)
- {
-
- return stc;
- }
- stc.x_ = m_card->origin_locate.x ;
- stc.y_ = m_card->origin_locate.y ;
- stc.gen_time_ = m_card->m_ct_time - m_Start_time;
-
-
-
- ct = stc.m_ct;
- ori_list_.push_back(stc);
- if(ori_list_.size()>MAX_HIS_LOCATION)
- {
- ori_list_.pop_front();
- }
- return stc;
- }
- void set_position_interface(std::shared_ptr<position_interface> ptr)
- {
- m_pi=ptr;
- }
- virtual point_2 get_position()
- {
- point_2 p;
- if (auto mp = m_pi.lock())
- {
- p = mp->get_position();
- }
- return p;
- }
- virtual bool save_point()
- {
- bool b = false;
- if (auto mp = m_pi.lock())
- {
- b = mp->save_point();
- }
- return b;
-
- }
- };
- struct person : card
- {
- time_t enter_time_;
- };
- #endif
|