| 2611 | } |
| 2612 | |
| 2613 | double ODRoad::getEle(double s) const { |
| 2614 | if (elevation.empty()) return 0.0; |
| 2615 | size_t index = 0; |
| 2616 | for (size_t i = 1; i < elevation.size(); i++) { |
| 2617 | if (s < elevation[i].offset()) { |
| 2618 | break; |
| 2619 | } |
| 2620 | index = i; |
| 2621 | } |
| 2622 | double dis = s - elevation[index].offset(); |
| 2623 | return elevation[index].value(dis); |
| 2624 | } |
| 2625 | |
| 2626 | void ODRoad::getObjects(std::vector<Object>& objs) const { |
| 2627 | auto getP = [&](double s, double t, ODXYZ& P, double& T) { |