21 #include <boost/format.hpp> 25 namespace perception {
31 typedef Eigen::Matrix<size_t, 2, 1>
Vec2ui;
32 typedef Eigen::Matrix<size_t, 3, 1>
Vec3ui;
43 const Vec2ui&
map_size()
const {
return map_size_; }
44 const Vec2ui&
dims()
const {
return dims_; }
45 const std::vector<uint64_t>&
bitmap()
const {
return bitmap_; }
46 int dir_major()
const {
return static_cast<int>(dir_major_); }
47 int op_dir_major()
const {
return static_cast<int>(op_dir_major_); }
55 bool Empty()
const {
return bitmap_.empty(); }
63 void Set(
const double x,
const double min_y,
const double max_y);
64 void Reset(
const double x,
const double min_y,
const double max_y);
69 "min_range: %lf %lf; max_range: %lf %lf;" 70 "cell_size: %lf %lf; dims: %d %d; dir_major: %s") %
71 bitmap.min_range_.x() % bitmap.min_range_.y() %
72 bitmap.max_range_.x() % bitmap.max_range_.y() %
73 bitmap.cell_size_.x() % bitmap.cell_size_.y() %
74 bitmap.dims_.x() % bitmap.dims_.y() %
81 inline bool CheckBit(
const size_t loc,
const uint64_t block)
const;
82 inline void SetBit(
const size_t loc, uint64_t* block);
83 inline void ResetBit(
const size_t loc, uint64_t* block);
85 inline void SetTailBits(
const size_t tail_num, uint64_t* block);
86 inline void ResetTailBits(
const size_t tail_num, uint64_t* block);
88 inline void SetHeadBits(
const size_t tail_num, uint64_t* block);
89 inline void ResetHeadBits(
const size_t tail_num, uint64_t* block);
91 inline void SetRangeBits(
const size_t head,
const size_t tail,
94 inline void ResetRangeBits(
const size_t head,
const size_t tail,
98 inline int Index(
const Vec3ui& p)
const;
107 std::vector<uint64_t> bitmap_;
int op_dir_major() const
Definition: bitmap2d.h:47
Eigen::Matrix< size_t, 3, 1 > Vec3ui
Definition: bitmap2d.h:32
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
const Eigen::Vector2d & cell_size() const
Definition: bitmap2d.h:42
virtual ~Bitmap2D()=default
Definition: bitmap2d.h:28
const Vec2ui & map_size() const
Definition: bitmap2d.h:43
void SetUp(const DirectionMajor dir_major)
Eigen::Vector2d Vector2d
Definition: base_map_fwd.h:36
Eigen::Matrix< size_t, 2, 1 > Vec2ui
Definition: bitmap2d.h:31
DirectionMajor
Definition: bitmap2d.h:30
DirectionMajor OppositeDirection(const DirectionMajor dir_major)
friend std::ostream & operator<<(std::ostream &out, const Bitmap2D &bitmap)
Definition: bitmap2d.h:67
bool IsExists(const Eigen::Vector2d &p) const
bool Empty() const
Definition: bitmap2d.h:55
const std::vector< uint64_t > & bitmap() const
Definition: bitmap2d.h:45
void Set(const Eigen::Vector2d &p)
int dir_major() const
Definition: bitmap2d.h:46
void Reset(const Eigen::Vector2d &p)
const Eigen::Vector2d & max_range() const
Definition: bitmap2d.h:41
void Init(const Eigen::Vector2d &min_range, const Eigen::Vector2d &max_range, const Eigen::Vector2d &cell_size)
const Eigen::Vector2d & min_range() const
Definition: bitmap2d.h:40
const Vec2ui & dims() const
Definition: bitmap2d.h:44
bool Check(const Eigen::Vector2d &p) const