16 #ifndef _RESIZEABLE_BITMAP_H_ 17 #define _RESIZEABLE_BITMAP_H_ 36 if (&b !=
this)
return *
this;
46 size_t bytes = (
size >> 3) + 1;
48 std::vector<uint8_t> *newbits =
new std::vector<uint8_t>(bytes);
49 newbits->assign(bytes, 0);
51 for (
size_t i = 0; i < bytes && i <
m_bits->size(); ++i) {
52 (*newbits)[i] = (*m_bits)[i];
60 bool get(
size_t column)
const {
61 return ((*
m_bits)[column >> 3]) & (1u << (column & 0x07));
64 void set(
size_t column) {
65 ((*m_bits)[column >> 3]) |= (uint8_t(1) << (column & 0x07));
69 ((*m_bits)[column >> 3]) &= ~(uint8_t(1) << (column & 0x07));
72 void copy(
size_t source,
size_t dest) {
77 for (
size_t i = 0; i <
m_bits->size(); ++i) {
78 if ((*
m_bits)[i])
return false;
84 for (
size_t i = 0; i + 1 <
m_bits->size(); ++i) {
85 if ((*
m_bits)[i] != 0xff)
return false;
88 if (!
get(i))
return false;
void reset(size_t column)
ResizeableBitset(size_t size)
bool get(size_t column) const
ResizeableBitset(const ResizeableBitset &b)
void copy(size_t source, size_t dest)
std::vector< uint8_t > * m_bits
ResizeableBitset & operator=(const ResizeableBitset &b)