OpenVDB 10.0.1
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
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  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. More...
 
uint32_t countOn (uint32_t i) const
 Return the number of lower set bits in mask up to but excluding the i'th bit. More...
 
OnIterator beginOn () const
 
OffIterator beginOff () const
 
 Mask ()
 Initialize all bits to zero. More...
 
 Mask (bool on)
 
 Mask (const Mask &other)
 Copy constructor. More...
 
template<typename WordT >
const WordT & getWord (int n) const
 Return a const reference to the nth word of the bit mask, for a word of arbitrary size. More...
 
template<typename WordT >
WordT & getWord (int n)
 Return a reference to the nth word of the bit mask, for a word of arbitrary size. More...
 
template<typename MaskT >
Maskoperator= (const MaskT &other)
 Assignment operator that works with openvdb::util::NodeMask. More...
 
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. More...
 
bool isOff (uint32_t n) const
 Return true if the given bit is NOT set. More...
 
bool isOn () const
 Return true if all the bits are set in this Mask. More...
 
bool isOff () const
 Return true if none of the bits are set in this Mask. More...
 
void setOn (uint32_t n)
 Set the specified bit on. More...
 
void setOff (uint32_t n)
 Set the specified bit off. More...
 
void set (uint32_t n, bool On)
 Set the specified bit on or off. More...
 
void setOn ()
 Set all bits on. More...
 
void setOff ()
 Set all bits off. More...
 
void set (bool on)
 Set all bits off. More...
 
void toggle ()
 brief Toggle the state of all bits in the mask More...
 
void toggle (uint32_t n)
 
Maskoperator&= (const Mask &other)
 Bitwise intersection. More...
 
Maskoperator|= (const Mask &other)
 Bitwise union. More...
 
Maskoperator-= (const Mask &other)
 Bitwise difference. More...
 
Maskoperator^= (const Mask &other)
 Bitwise XOR. More...
 

Static Public Member Functions

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

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

using OffIterator = Iterator<false>

◆ OnIterator

using OnIterator = Iterator<true>

Constructor & Destructor Documentation

◆ Mask() [1/3]

Mask ( )
inline

Initialize all bits to zero.

◆ Mask() [2/3]

Mask ( bool  on)
inline

◆ Mask() [3/3]

Mask ( const Mask< LOG2DIM > &  other)
inline

Copy constructor.

Member Function Documentation

◆ beginOff()

OffIterator beginOff ( ) const
inline

◆ beginOn()

OnIterator beginOn ( ) const
inline

◆ bitCount()

static uint32_t bitCount ( )
inlinestatic

Return the number of bits available in this Mask.

◆ countOn() [1/2]

uint32_t countOn ( ) const
inline

Return the total number of set bits in this Mask.

◆ countOn() [2/2]

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.

◆ getWord() [1/2]

WordT & getWord ( int  n)
inline

Return a reference to the nth word of the bit mask, for a word of arbitrary size.

◆ getWord() [2/2]

const WordT & getWord ( int  n) const
inline

Return a const reference to the nth word of the bit mask, for a word of arbitrary size.

◆ isOff() [1/2]

bool isOff ( ) const
inline

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

◆ isOff() [2/2]

bool isOff ( uint32_t  n) const
inline

Return true if the given bit is NOT set.

◆ isOn() [1/2]

bool isOn ( ) const
inline

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

◆ isOn() [2/2]

bool isOn ( uint32_t  n) const
inline

Return true if the given bit is set.

◆ memUsage()

static size_t memUsage ( )
inlinestatic

Return the memory footprint in bytes of this Mask.

◆ operator!=()

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

◆ operator&=()

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

Bitwise intersection.

◆ operator-=()

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

Bitwise difference.

◆ operator=()

Mask & operator= ( const MaskT &  other)
inline

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

◆ operator==()

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

◆ operator^=()

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

Bitwise XOR.

◆ operator|=()

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

Bitwise union.

◆ set() [1/2]

void set ( bool  on)
inline

Set all bits off.

◆ set() [2/2]

void set ( uint32_t  n,
bool  On 
)
inline

Set the specified bit on or off.

◆ setOff() [1/2]

void setOff ( )
inline

Set all bits off.

◆ setOff() [2/2]

void setOff ( uint32_t  n)
inline

Set the specified bit off.

◆ setOn() [1/2]

void setOn ( )
inline

Set all bits on.

◆ setOn() [2/2]

void setOn ( uint32_t  n)
inline

Set the specified bit on.

◆ toggle() [1/2]

void toggle ( )
inline

brief Toggle the state of all bits in the mask

◆ toggle() [2/2]

void toggle ( uint32_t  n)
inline

◆ wordCount()

static uint32_t wordCount ( )
inlinestatic

Return the number of machine words used by this Mask.