42#ifndef UFO_MAP_OCCUPANCY_OCCUPANCY_HPP
43#define UFO_MAP_OCCUPANCY_OCCUPANCY_HPP
46#include <ufo/map/occupancy/state.hpp>
54template <
class T =
float>
59 using value_type = float;
69 using value_type = std::uint8_t;
79 using value_type = OccupancyState;
90[[nodiscard]]
constexpr auto occupancy(
Occupancy<T> occupancy)
96[[nodiscard]]
constexpr auto logit(Occupancy<T> occupancy)
98 if constexpr (std::is_same_v<bool, T>) {
99 return (0b01110000u & occupancy.data) >> 4u;
101 return occupancy.logit;
106[[nodiscard]]
constexpr bool containsUnknown(Occupancy<T> occupancy)
108 return static_cast<bool>(0b00000001u & occupancy.data);
112[[nodiscard]]
constexpr bool containsFree(Occupancy<T> occupancy)
114 return static_cast<bool>(0b00000010u & occupancy.data);
118[[nodiscard]]
constexpr bool containsOccupied(Occupancy<T> occupancy)
120 return static_cast<bool>(0b00000100u & occupancy.data);
124[[nodiscard]]
constexpr bool containsVoidRegion(Occupancy<T> occupancy)
126 return static_cast<bool>(0b00001000u & occupancy.data);
130[[nodiscard]]
constexpr bool unknown(Occupancy<T> occupancy, T min_threshold,
137[[nodiscard]]
constexpr bool free(Occupancy<T> occupancy, T min_threshold,
144[[nodiscard]]
bool occupied(Occupancy<T> occupancy, T threshold)
All vision-related classes and functions.