class Bonxai::Mask

Overview

Bit-mask to encode active states and facilitate sequential iterators.

#include <mrpt/maps/bonxai/bonxai.hpp>

class Mask
{
public:
    // classes

    class Iterator;

    // fields

    const uint32_t SIZE;
    const uint32_t WORD_COUNT;

    // construction

    Mask(size_t log2dim);
    Mask(size_t log2dim, bool on);
    Mask(const Mask& other);
    Mask(Mask&& other);

    // methods

    size_t memUsage() const;
    uint32_t bitCount() const;
    uint32_t wordCount() const;
    uint64_t getWord(size_t n) const;

    void setWord(
        size_t n,
        uint64_t v
        );

    uint32_t countOn() const;
    bool operator == (const Mask& other) const;
    bool operator != (const Mask& other) const;
    Iterator beginOn() const;
    bool isOn(uint32_t n) const;
    bool isOn() const;
    bool isOff() const;
    bool setOn(uint32_t n);
    bool setOff(uint32_t n);

    void set(
        uint32_t n,
        bool On
        );

    void setOn();
    void setOff();
    void set(bool on);
    void toggle();
    void toggle(uint32_t n);
};

Construction

Mask(size_t log2dim)

Initialize all bits to zero.

Mask(size_t log2dim, bool on)

Initialize all bits to a given value.

Methods

size_t memUsage() const

Return the memory footprint in bytes of this Mask.

uint32_t bitCount() const

Return the number of bits available in this Mask.

uint32_t wordCount() const

Return the number of machine words used by this Mask.

bool isOn(uint32_t n) const

Return true if the given bit is set.

bool isOn() const

Return true if any bit is set.

void setOn()

Set all bits on.

void setOff()

Set all bits off.

void set(bool on)

Set all bits too the value “on”.

void toggle()

Toggle the state of all bits in the mask.

void toggle(uint32_t n)

Toggle the state of one bit in the mask.