15 #include "ad/physics/RangeOperation.hpp"
22 namespace restriction {
32 return left.speedLimit == right.speedLimit;
45 return extendRangeWith(left.lanePiece, right.lanePiece);
56 template <
typename RangeAttribute>
59 for (
auto const &listEntry : attributeList)
61 if (doRangesOverlap(attribute.lanePiece, listEntry.lanePiece)
62 && !doesRangePredate(attribute.lanePiece, listEntry.lanePiece)
63 && !doesRangeSucceed(attribute.lanePiece, listEntry.lanePiece))
76 template <
typename RangeAttribute>
79 for (
auto it = attributeList.begin(); it != attributeList.end(); it++)
81 if (attribute.lanePiece <= it->lanePiece)
83 attributeList.insert(it, attribute);
88 attributeList.push_back(attribute);
95 for (
auto it = attributeList.begin(); it != attributeList.end();)
98 if (it1 == attributeList.end())
104 attributeList.erase(it1);