static_occupancy_grid.hpp
Go to the documentation of this file.
1 // Copyright 2023 Ekumen, Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef BELUGA_TEST_STATIC_OCCUPANCY_GRID_HPP
16 #define BELUGA_TEST_STATIC_OCCUPANCY_GRID_HPP
17 
18 #include <array>
19 #include <cstdint>
20 
22 
23 #include <sophus/se2.hpp>
24 
25 namespace beluga::testing {
26 
27 template <std::size_t Rows, std::size_t Cols>
28 class StaticOccupancyGrid : public BaseOccupancyGrid2<StaticOccupancyGrid<Rows, Cols>> {
29  public:
30  struct ValueTraits {
31  [[nodiscard]] bool is_free(bool value) const { return !value; }
32  [[nodiscard]] bool is_unknown(bool) const { return false; }
33  [[nodiscard]] bool is_occupied(bool value) const { return value; }
34  };
35 
37  std::array<bool, Rows * Cols> array,
38  double resolution = 1.0,
39  const Sophus::SE2d& origin = Sophus::SE2d{})
40  : grid_{array}, origin_(origin), resolution_{resolution} {}
41 
42  [[nodiscard]] const Sophus::SE2d& origin() const { return origin_; }
43 
44  [[nodiscard]] auto& data() { return grid_; }
45  [[nodiscard]] const auto& data() const { return grid_; }
46  [[nodiscard]] std::size_t size() const { return grid_.size(); }
47 
48  [[nodiscard]] std::size_t width() const { return Cols; }
49  [[nodiscard]] std::size_t height() const { return Rows; }
50  [[nodiscard]] double resolution() const { return resolution_; }
51 
52  [[nodiscard]] auto value_traits() const { return ValueTraits{}; }
53 
54  private:
55  std::array<bool, Rows * Cols> grid_;
57  double resolution_;
58 };
59 
60 } // namespace beluga::testing
61 
62 #endif
beluga::testing::StaticOccupancyGrid::value_traits
auto value_traits() const
Definition: static_occupancy_grid.hpp:52
beluga::testing::StaticOccupancyGrid::data
const auto & data() const
Definition: static_occupancy_grid.hpp:45
beluga::testing::StaticOccupancyGrid::StaticOccupancyGrid
StaticOccupancyGrid(std::array< bool, Rows *Cols > array, double resolution=1.0, const Sophus::SE2d &origin=Sophus::SE2d{})
Definition: static_occupancy_grid.hpp:36
beluga::testing::StaticOccupancyGrid::origin
const Sophus::SE2d & origin() const
Definition: static_occupancy_grid.hpp:42
beluga::testing::StaticOccupancyGrid::ValueTraits::is_free
bool is_free(bool value) const
Definition: static_occupancy_grid.hpp:31
beluga::BaseOccupancyGrid2
Occupancy 2D grid base type.
Definition: occupancy_grid.hpp:85
se2.hpp
beluga::testing::StaticOccupancyGrid::origin_
Sophus::SE2d origin_
Definition: static_occupancy_grid.hpp:56
beluga::testing::StaticOccupancyGrid::width
std::size_t width() const
Definition: static_occupancy_grid.hpp:48
beluga::testing::StaticOccupancyGrid::ValueTraits::is_unknown
bool is_unknown(bool) const
Definition: static_occupancy_grid.hpp:32
beluga::testing::StaticOccupancyGrid::ValueTraits::is_occupied
bool is_occupied(bool value) const
Definition: static_occupancy_grid.hpp:33
Sophus::SE2
beluga::testing::StaticOccupancyGrid::ValueTraits
Definition: static_occupancy_grid.hpp:30
beluga::testing::StaticOccupancyGrid
Definition: static_occupancy_grid.hpp:28
occupancy_grid.hpp
Concepts and abstract implementations of occupancy grids.
beluga::testing::StaticOccupancyGrid::height
std::size_t height() const
Definition: static_occupancy_grid.hpp:49
beluga::testing::StaticOccupancyGrid::grid_
std::array< bool, Rows *Cols > grid_
Definition: static_occupancy_grid.hpp:55
beluga::testing::StaticOccupancyGrid::resolution_
double resolution_
Definition: static_occupancy_grid.hpp:57
beluga::testing
Definition: sophus_matchers.hpp:32
beluga::testing::StaticOccupancyGrid::resolution
double resolution() const
Definition: static_occupancy_grid.hpp:50
beluga::testing::StaticOccupancyGrid::data
auto & data()
Definition: static_occupancy_grid.hpp:44
beluga::testing::StaticOccupancyGrid::size
std::size_t size() const
Definition: static_occupancy_grid.hpp:46


beluga
Author(s):
autogenerated on Tue Jul 16 2024 02:59:53