111111111 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. if(pid == 0)
  2. {
  3. line_v l(p1,p2);
  4. {
  5. point px = l.line::projection(sit_);
  6. sit_.set(px);
  7. for(int i=0;i<2;i++)
  8. {
  9. path p;
  10. p.m_slope[0] = atof(s[8]);
  11. p.m_line[0] = line_v(px,l[i]);
  12. sit_.m_ant[i].m_path.push_back(p);
  13. }
  14. }
  15. }
  16. else
  17. {
  18. ant &a = pid<0?sit_.m_ant[0]:sit_.m_ant[1];
  19. if(a.m_path.size()!=0)
  20. {
  21. path &p = a.m_path[0];
  22. p.m_line[abs(pid)-1] = line_v(p1,p2);
  23. p.m_slope[abs(pid)-1] = atof(s[8]);
  24. }
  25. else
  26. {
  27. path p;
  28. p.m_line[abs(pid)-1] = line_v(p1,p2);
  29. p.m_slope[abs(pid)-1] = atof(s[8]);
  30. a.m_path.push_back(p);
  31. }
  32. if(abs(pid)==1)
  33. sit_.set(p1);
  34. }
  35. }
  36. fclose(fp);
  37. for(auto&_s:sit_list::instance()->m_map)
  38. {
  39. auto & s = *(_s.second);
  40. if(s.m_id==-1)
  41. continue;
  42. s.swap();
  43. if((s.path(0).empty() && s.path(1).empty()))
  44. continue;
  45. s.m_path_empty=false;
  46. for(auto &a:s.m_ant)
  47. for(auto &p:a.m_path)
  48. {
  49. if(!p.m_line[0].empty())
  50. {
  51. point px = p.m_line[0].line::projection(a);
  52. p.m_line[0]=line_v(px,p.m_line[0][1]);
  53. }
  54. }
  55. //std_info("%s",s.to_string().c_str());
  56. log_info("%s",s.to_string().c_str());
  57. //std_info("%f----%f",s.x,s.y);
  58. }