123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #ifndef __MONKEYCAR_AREA__
- #define __MONKEYCAR_AREA__
- //#include "monkeycar_person.h"
- //#include "monkeycar_bus.h"
- #include <mutex>
- #include <memory>
- #include "area.h"
- #include "fp_path.h"
- struct db_area
- {
- std::vector<point> m_point;
- double m_default_speed;
- };
- struct monkey_bus;
- struct monkey_person;
- struct monkey_area : area,std::enable_shared_from_this<monkey_area>
- {
- public:
- monkey_area(std::shared_ptr<db_area> dap,int area_id,int over_count_person,int over_time_person,double scale,int32_t ,int32_t);
- ~monkey_area()
- {}
- std::shared_ptr<monkey_person> find(uint32_t cardid);
- virtual void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c);
- virtual void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c);
- virtual void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c);
- void on_card_leave(uint32_t cardid);
- void on_card_enter(const std::shared_ptr<card_location_base>&);
- void on_card_move(uint32_t cardid,const st_coord & st,uint64_t);
-
- inline double map(double x, double y)
- {
- return m_path.map(x,y);
- }
- inline point_2 map(double d)
- {
- return m_path.map(d);
- }
- inline double get_total_length()
- {
- return m_path.get_total_length();
- }
- double getScale()
- {
- return scale();
- }
- static uint64_t m_startTime;
- private:
- std::map<uint32_t ,std::shared_ptr<monkey_person>> card_map_;
- std::vector<std::shared_ptr<monkey_bus>> bus_;
- fp_path m_path;
- std::mutex m_mtx;
- };
- #endif
|