15 #ifndef BELUGA_SENSOR_DATA_LASER_SCAN_HPP
16 #define BELUGA_SENSOR_DATA_LASER_SCAN_HPP
24 #include <range/v3/view/filter.hpp>
25 #include <range/v3/view/transform.hpp>
26 #include <range/v3/view/zip.hpp>
58 template <
typename Derived>
64 using std::cos, std::sin;
66 vector.x() * cos(vector.y()), vector.x() * sin(vector.y())};
76 static_assert(std::is_floating_point_v<ranges::range_value_t<decltype(this->
self().ranges())>>);
77 static_assert(std::is_floating_point_v<ranges::range_value_t<decltype(this->
self().angles())>>);
79 ranges::views::filter([
this](
const auto& tuple) {
80 const auto [range, theta] = tuple;
82 return !isnan(range) && range >= this->
self().min_range() && range <= this->
self().max_range();
84 ranges::views::transform([](
const auto& tuple) {
85 const auto [range, theta] = tuple;