Upgrade Wagyu to version 0.5.0

This commit is contained in:
Eric Fischer
2020-08-25 17:00:50 -07:00
parent ddb79937d9
commit e0c7f1b91a
55 changed files with 794 additions and 576 deletions
+14 -5
View File
@@ -12,13 +12,20 @@ namespace wagyu {
template <typename T>
using scanbeam_list = std::vector<T>;
template <typename T>
void insert_sorted_scanbeam(scanbeam_list<T>& scanbeam, T& t) {
typename scanbeam_list<T>::iterator i = std::lower_bound(scanbeam.begin(), scanbeam.end(), t);
if (i == scanbeam.end() || t < *i) {
scanbeam.insert(i, t);
}
}
template <typename T>
bool pop_from_scanbeam(T& Y, scanbeam_list<T>& scanbeam) {
if (scanbeam.empty()) {
return false;
}
std::sort(scanbeam.begin(), scanbeam.end());
scanbeam.erase(std::unique(scanbeam.begin(), scanbeam.end()), scanbeam.end());
Y = scanbeam.back();
scanbeam.pop_back();
return true;
@@ -27,10 +34,12 @@ bool pop_from_scanbeam(T& Y, scanbeam_list<T>& scanbeam) {
template <typename T>
void setup_scanbeam(local_minimum_list<T>& minima_list, scanbeam_list<T>& scanbeam) {
scanbeam.reserve(minima_list.size());
for (auto lm = minima_list.begin(); lm != minima_list.end(); ++lm) {
scanbeam.push_back(lm->y);
}
std::sort(scanbeam.begin(), scanbeam.end());
}
}
}
}
} // namespace wagyu
} // namespace geometry
} // namespace mapbox