Loading...
Searching...
No Matches
Mask< LOG2DIM > Class Template Reference

Bit-mask to encode active states and facilitate sequential iterators and a fast codec for I/O compression. More...

`#include <nanovdb/NanoVDB.h>`

## Classes

class | DenseIterator
class | Iterator

## Public Types

using | OnIterator = Iterator< true >
using | OffIterator = Iterator< false >

## Public Member Functions

uint32_t | countOn () const
| Return the total number of set bits in this Mask.
uint32_t | countOn (uint32_t i) const
| Return the number of lower set bits in mask up to but excluding the i'th bit.
OnIterator | beginOn () const
OffIterator | beginOff () const
DenseIterator | beginAll () const
| Mask ()
| Initialize all bits to zero.
| Mask (bool on)
| Mask (const Mask &other)
| Copy constructor.
uint64_t * | words ()
| Return a pointer to the list of words of the bit mask.
const uint64_t * | words () const
template<typename MaskT = Mask>
enable_if<!is_same< MaskT, Mask >::value, Mask & >::type | operator= (const MaskT &other)
| Assignment operator that works with openvdb::util::NodeMask.
Mask & | operator= (const Mask &other)
bool | operator== (const Mask &other) const
bool | operator!= (const Mask &other) const
bool | isOn (uint32_t n) const
| Return true if the given bit is set.
bool | isOff (uint32_t n) const
| Return true if the given bit is NOT set.
bool | isOn () const
| Return true if all the bits are set in this Mask.
bool | isOff () const
| Return true if none of the bits are set in this Mask.
void | setOn (uint32_t n)
| Set the specified bit on.
void | setOff (uint32_t n)
| Set the specified bit off.
void | set (uint32_t n, bool on)
| Set the specified bit on or off.
void | setOn ()
| Set all bits on.
void | setOff ()
| Set all bits off.
void | set (bool on)
| Set all bits off.
void | toggle ()
| brief Toggle the state of all bits in the mask
void | toggle (uint32_t n)
Mask & | operator&= (const Mask &other)
| Bitwise intersection.
Mask & | operator|= (const Mask &other)
| Bitwise union.
Mask & | operator-= (const Mask &other)
| Bitwise difference.
Mask & | operator^= (const Mask &other)
| Bitwise XOR.
template<bool ON>
uint32_t | findFirst () const
template<bool ON>
uint32_t | findNext (uint32_t start) const
template<bool ON>
uint32_t | findPrev (uint32_t start) const

## Static Public Member Functions

static size_t | memUsage ()
| Return the memory footprint in bytes of this Mask.
static uint32_t | bitCount ()
| Return the number of bits available in this Mask.
static uint32_t | wordCount ()
| Return the number of machine words used by this Mask.

## Static Public Attributes

static constexpr uint32_t | SIZE = 1U << (3 * LOG2DIM)
static constexpr uint32_t | WORD_COUNT = SIZE >> 6

## Detailed Description

template<uint32_t LOG2DIM>
class nanovdb::Mask< LOG2DIM >

Bit-mask to encode active states and facilitate sequential iterators and a fast codec for I/O compression.

## Member Typedef Documentation

## OffIterator

template<uint32_t LOG2DIM>

using OffIterator = Iterator<false>

## OnIterator

template<uint32_t LOG2DIM>

using OnIterator = Iterator<true>

## Constructor & Destructor Documentation

## Mask() [1/3]

template<uint32_t LOG2DIM>

Mask | ( |  | ) |

inline

Initialize all bits to zero.

## Mask() [2/3]

template<uint32_t LOG2DIM>

Mask | ( | bool | on | ) |

inline

## Mask() [3/3]

template<uint32_t LOG2DIM>

Mask | ( | const Mask< LOG2DIM > & | other | ) |

inline

Copy constructor.

## Member Function Documentation

## beginAll()

template<uint32_t LOG2DIM>

DenseIterator beginAll | ( |  | ) | const

inline

## beginOff()

template<uint32_t LOG2DIM>

OffIterator beginOff | ( |  | ) | const

inline

## beginOn()

template<uint32_t LOG2DIM>

OnIterator beginOn | ( |  | ) | const

inline

## bitCount()

template<uint32_t LOG2DIM>

static uint32_t bitCount | ( |  | ) |

inlinestatic

Return the number of bits available in this Mask.

## countOn() [1/2]

template<uint32_t LOG2DIM>

uint32_t countOn | ( |  | ) | const

inline

Return the total number of set bits in this Mask.

## countOn() [2/2]

template<uint32_t LOG2DIM>

uint32_t countOn | ( | uint32_t | i | ) | const

inline

Return the number of lower set bits in mask up to but excluding the i'th bit.

## findFirst()

template<uint32_t LOG2DIM>
template<bool ON>

uint32_t findFirst | ( |  | ) | const

inline

## findNext()

template<uint32_t LOG2DIM>
template<bool ON>

uint32_t findNext | ( | uint32_t | start | ) | const

inline

## findPrev()

template<uint32_t LOG2DIM>
template<bool ON>

uint32_t findPrev | ( | uint32_t | start | ) | const

inline

## isOff() [1/2]

template<uint32_t LOG2DIM>

bool isOff | ( |  | ) | const

inline

Return true if none of the bits are set in this Mask.

## isOff() [2/2]

template<uint32_t LOG2DIM>

bool isOff | ( | uint32_t | n | ) | const

inline

Return true if the given bit is NOT set.

## isOn() [1/2]

template<uint32_t LOG2DIM>

bool isOn | ( |  | ) | const

inline

Return true if all the bits are set in this Mask.

## isOn() [2/2]

template<uint32_t LOG2DIM>

bool isOn | ( | uint32_t | n | ) | const

inline

Return true if the given bit is set.

## memUsage()

template<uint32_t LOG2DIM>

static size_t memUsage | ( |  | ) |

inlinestatic

Return the memory footprint in bytes of this Mask.

## operator!=()

template<uint32_t LOG2DIM>

bool operator!= | ( | const Mask< LOG2DIM > & | other | ) | const

inline

## operator&=()

template<uint32_t LOG2DIM>

Mask & operator&= | ( | const Mask< LOG2DIM > & | other | ) |

inline

Bitwise intersection.

## operator-=()

template<uint32_t LOG2DIM>

Mask & operator-= | ( | const Mask< LOG2DIM > & | other | ) |

inline

Bitwise difference.

## operator=() [1/2]

template<uint32_t LOG2DIM>

Mask & operator= | ( | const Mask< LOG2DIM > & | other | ) |

inline

## operator=() [2/2]

template<uint32_t LOG2DIM>
template<typename MaskT = Mask>

enable_if<!is_same< MaskT, Mask >::value, Mask & >::type operator= | ( | const MaskT & | other | ) |

inline

Assignment operator that works with openvdb::util::NodeMask.

## operator==()

template<uint32_t LOG2DIM>

bool operator== | ( | const Mask< LOG2DIM > & | other | ) | const

inline

## operator^=()

template<uint32_t LOG2DIM>

Mask & operator^= | ( | const Mask< LOG2DIM > & | other | ) |

inline

Bitwise XOR.

## operator|=()

template<uint32_t LOG2DIM>

Mask & operator|= | ( | const Mask< LOG2DIM > & | other | ) |

inline

Bitwise union.

## set() [1/2]

template<uint32_t LOG2DIM>

void set | ( | bool | on | ) |

inline

Set all bits off.

## set() [2/2]

template<uint32_t LOG2DIM>

void set | ( | uint32_t | n,
|  | bool | on
| ) |  |

inline

Set the specified bit on or off.

## setOff() [1/2]

template<uint32_t LOG2DIM>

void setOff | ( |  | ) |

inline

Set all bits off.

## setOff() [2/2]

template<uint32_t LOG2DIM>

void setOff | ( | uint32_t | n | ) |

inline

Set the specified bit off.

## setOn() [1/2]

template<uint32_t LOG2DIM>

void setOn | ( |  | ) |

inline

Set all bits on.

## setOn() [2/2]

template<uint32_t LOG2DIM>

void setOn | ( | uint32_t | n | ) |

inline

Set the specified bit on.

## toggle() [1/2]

template<uint32_t LOG2DIM>

void toggle | ( |  | ) |

inline

brief Toggle the state of all bits in the mask

## toggle() [2/2]

template<uint32_t LOG2DIM>

void toggle | ( | uint32_t | n | ) |

inline

## wordCount()

template<uint32_t LOG2DIM>

static uint32_t wordCount | ( |  | ) |

inlinestatic

Return the number of machine words used by this Mask.

## words() [1/2]

template<uint32_t LOG2DIM>

uint64_t * words | ( |  | ) |

inline

Return a pointer to the list of words of the bit mask.

## words() [2/2]

template<uint32_t LOG2DIM>

const uint64_t * words | ( |  | ) | const

inline

## Member Data Documentation

## SIZE

template<uint32_t LOG2DIM>

constexpr uint32_t SIZE = 1U << (3 * LOG2DIM)

staticconstexpr

## WORD_COUNT

template<uint32_t LOG2DIM>

constexpr uint32_t WORD_COUNT = SIZE >> 6

staticconstexpr