Loading...
Searching...
No Matches
NodeMask< Log2Dim > Class Template Reference

Bit mask for the internal and leaf nodes of VDB. This is a 64-bit implementation. More...

`#include <openvdb/util/NodeMasks.h>`

## Public Types

using | Word = Index64
using | OnIterator = OnMaskIterator<NodeMask>
using | OffIterator = OffMaskIterator<NodeMask>
using | DenseIterator = DenseMaskIterator<NodeMask>

## Public Member Functions

| NodeMask ()
| Default constructor sets all bits off.
| NodeMask (bool on)
| All bits are set to the specified state.
| NodeMask (const NodeMask &other)
| Copy constructor.
| ~NodeMask ()
| Destructor.
NodeMask & | operator= (const NodeMask &other)
| Assignment operator.
OnIterator | beginOn () const
OnIterator | endOn () const
OffIterator | beginOff () const
OffIterator | endOff () const
DenseIterator | beginDense () const
DenseIterator | endDense () const
bool | operator== (const NodeMask &other) const
bool | operator!= (const NodeMask &other) const
template<typename WordOp>
const NodeMask & | foreach (const NodeMask &other, const WordOp &op)
| Apply a functor to the words of the this and the other mask.
template<typename WordOp>
const NodeMask & | foreach (const NodeMask &other1, const NodeMask &other2, const WordOp &op)
template<typename WordOp>
const NodeMask & | foreach (const NodeMask &other1, const NodeMask &other2, const NodeMask &other3, const WordOp &op)
const NodeMask & | operator&= (const NodeMask &other)
| Bitwise intersection.
const NodeMask & | operator|= (const NodeMask &other)
| Bitwise union.
const NodeMask & | operator-= (const NodeMask &other)
| Bitwise difference.
const NodeMask & | operator^= (const NodeMask &other)
| Bitwise XOR.
NodeMask | operator! () const
NodeMask | operator& (const NodeMask &other) const
NodeMask | operator| (const NodeMask &other) const
NodeMask | operator^ (const NodeMask &other) const
Index32 | countOn () const
| Return the total number of on bits.
Index32 | countOff () const
| Return the total number of on bits.
void | setOn (Index32 n)
| Set the nth bit on.
void | setOff (Index32 n)
| Set the nth bit off.
void | set (Index32 n, bool On)
| Set the nth bit to the specified state.
void | set (bool on)
| Set all bits to the specified state.
void | setOn ()
| Set all bits on.
void | setOff ()
| Set all bits off.
void | toggle (Index32 n)
| Toggle the state of the nth bit.
void | toggle ()
| Toggle the state of all bits in the mask.
void | setFirstOn ()
| Set the first bit on.
void | setLastOn ()
| Set the last bit on.
void | setFirstOff ()
| Set the first bit off.
void | setLastOff ()
| Set the last bit off.
bool | isOn (Index32 n) const
| Return `true` if the nth bit is on.
bool | isOff (Index32 n) const
| Return `true` if the nth bit is off.
bool | isOn () const
| Return `true` if all the bits are on.
bool | isOff () const
| Return `true` if all the bits are off.
bool | isConstant (bool &isOn) const
Index32 | findFirstOn () const
Index32 | findFirstOff () const
template<typename WordT>
WordT | getWord (Index n) const
| Return the nth word of the bit mask, for a word of arbitrary size.
template<typename WordT>
WordT & | getWord (Index n)
void | save (std::ostream &os) const
void | load (std::istream &is)
void | seek (std::istream &is) const
void | printInfo (std::ostream &os=std::cout) const
| simple print method for debugging
void | printBits (std::ostream &os=std::cout, Index32 max_out=80u) const
void | printAll (std::ostream &os=std::cout, Index32 max_out=80u) const
Index32 | findNextOn (Index32 start) const
Index32 | findNextOff (Index32 start) const

## Static Public Member Functions

static Index32 | memUsage ()
| Return the byte size of this NodeMask.

## Static Public Attributes

static const Index32 | LOG2DIM = Log2Dim
static const Index32 | DIM = 1<<Log2Dim
static const Index32 | SIZE = 1<<3*Log2Dim
static const Index32 | WORD_COUNT = SIZE >> 6

## Detailed Description

template<Index Log2Dim>
class openvdb::v11_0::util::NodeMask< Log2Dim >

Bit mask for the internal and leaf nodes of VDB. This is a 64-bit implementation.

Note
  A template specialization for Log2Dim=1 and Log2Dim=2 are given below.

## Member Typedef Documentation

## DenseIterator

template<Index Log2Dim>

using DenseIterator = DenseMaskIterator<NodeMask>

## OffIterator

template<Index Log2Dim>

using OffIterator = OffMaskIterator<NodeMask>

## OnIterator

template<Index Log2Dim>

using OnIterator = OnMaskIterator<NodeMask>

## Word

template<Index Log2Dim>

using Word = Index64

## Constructor & Destructor Documentation

## NodeMask() [1/3]

template<Index Log2Dim>

NodeMask | ( |  | ) |

inline

Default constructor sets all bits off.

## NodeMask() [2/3]

template<Index Log2Dim>

NodeMask | ( | bool | on | ) |

inline

All bits are set to the specified state.

## NodeMask() [3/3]

template<Index Log2Dim>

NodeMask | ( | const NodeMask< Log2Dim > & | other | ) |

inline

Copy constructor.

## ~NodeMask()

template<Index Log2Dim>

~NodeMask | ( |  | ) |

inline

Destructor.

## Member Function Documentation

## beginDense()

template<Index Log2Dim>

DenseIterator beginDense | ( |  | ) | const

inline

## beginOff()

template<Index Log2Dim>

OffIterator beginOff | ( |  | ) | const

inline

## beginOn()

template<Index Log2Dim>

OnIterator beginOn | ( |  | ) | const

inline

## countOff()

template<Index Log2Dim>

Index32 countOff | ( |  | ) | const

inline

Return the total number of on bits.

## countOn()

template<Index Log2Dim>

Index32 countOn | ( |  | ) | const

inline

Return the total number of on bits.

## endDense()

template<Index Log2Dim>

DenseIterator endDense | ( |  | ) | const

inline

## endOff()

template<Index Log2Dim>

OffIterator endOff | ( |  | ) | const

inline

## endOn()

template<Index Log2Dim>

OnIterator endOn | ( |  | ) | const

inline

## findFirstOff()

template<Index Log2Dim>

Index32 findFirstOff | ( |  | ) | const

inline

## findFirstOn()

template<Index Log2Dim>

Index32 findFirstOn | ( |  | ) | const

inline

## findNextOff()

template<Index Log2Dim>

Index32 findNextOff | ( | Index32 | start | ) | const

inline

## findNextOn()

template<Index Log2Dim>

Index32 findNextOn | ( | Index32 | start | ) | const

inline

## foreach() [1/3]

template<Index Log2Dim>
template<typename WordOp>

const NodeMask & foreach | ( | const NodeMask< Log2Dim > & | other,
|  | const WordOp & | op )

inline

Apply a functor to the words of the this and the other mask.

An example that implements the "operator&=" method:

struct Op { inline void operator()(W &w1, const W& w2) const { w1 &= w2; } };

## foreach() [2/3]

template<Index Log2Dim>
template<typename WordOp>

const NodeMask & foreach | ( | const NodeMask< Log2Dim > & | other1,
|  | const NodeMask< Log2Dim > & | other2,
|  | const NodeMask< Log2Dim > & | other3,
|  | const WordOp & | op )

inline

## foreach() [3/3]

template<Index Log2Dim>
template<typename WordOp>

const NodeMask & foreach | ( | const NodeMask< Log2Dim > & | other1,
|  | const NodeMask< Log2Dim > & | other2,
|  | const WordOp & | op )

inline

## getWord() [1/2]

template<Index Log2Dim>
template<typename WordT>

WordT & getWord | ( | Index | n | ) |

inline

## getWord() [2/2]

template<Index Log2Dim>
template<typename WordT>

WordT getWord | ( | Index | n | ) | const

inline

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

## isConstant()

template<Index Log2Dim>

bool isConstant | ( | bool & | isOn | ) | const

inline

Return `true` if bits are either all off OR all on.

Parameters

  isOn | Takes on the values of all bits if the method returns true - else it is undefined.

## isOff() [1/2]

template<Index Log2Dim>

bool isOff | ( |  | ) | const

inline

Return `true` if all the bits are off.

## isOff() [2/2]

template<Index Log2Dim>

bool isOff | ( | Index32 | n | ) | const

inline

Return `true` if the nth bit is off.

## isOn() [1/2]

template<Index Log2Dim>

bool isOn | ( |  | ) | const

inline

Return `true` if all the bits are on.

## isOn() [2/2]

template<Index Log2Dim>

bool isOn | ( | Index32 | n | ) | const

inline

Return `true` if the nth bit is on.

## load()

template<Index Log2Dim>

void load | ( | std::istream & | is | ) |

inline

## memUsage()

template<Index Log2Dim>

Index32 memUsage | ( |  | ) |

inlinestatic

Return the byte size of this NodeMask.

## operator!()

template<Index Log2Dim>

NodeMask operator! | ( |  | ) | const

inline

## operator!=()

template<Index Log2Dim>

bool operator!= | ( | const NodeMask< Log2Dim > & | other | ) | const

inline

## operator&()

template<Index Log2Dim>

NodeMask operator& | ( | const NodeMask< Log2Dim > & | other | ) | const

inline

## operator&=()

template<Index Log2Dim>

const NodeMask & operator&= | ( | const NodeMask< Log2Dim > & | other | ) |

inline

Bitwise intersection.

## operator-=()

template<Index Log2Dim>

const NodeMask & operator-= | ( | const NodeMask< Log2Dim > & | other | ) |

inline

Bitwise difference.

## operator=()

template<Index Log2Dim>

NodeMask & operator= | ( | const NodeMask< Log2Dim > & | other | ) |

inline

Assignment operator.

## operator==()

template<Index Log2Dim>

bool operator== | ( | const NodeMask< Log2Dim > & | other | ) | const

inline

## operator^()

template<Index Log2Dim>

NodeMask operator^ | ( | const NodeMask< Log2Dim > & | other | ) | const

inline

## operator^=()

template<Index Log2Dim>

const NodeMask & operator^= | ( | const NodeMask< Log2Dim > & | other | ) |

inline

Bitwise XOR.

## operator|()

template<Index Log2Dim>

NodeMask operator| | ( | const NodeMask< Log2Dim > & | other | ) | const

inline

## operator|=()

template<Index Log2Dim>

const NodeMask & operator|= | ( | const NodeMask< Log2Dim > & | other | ) |

inline

Bitwise union.

## printAll()

template<Index Log2Dim>

void printAll | ( | std::ostream & | os = std::cout,
|  | Index32 | max_out = 80u ) const

inline

## printBits()

template<Index Log2Dim>

void printBits | ( | std::ostream & | os = std::cout,
|  | Index32 | max_out = 80u ) const

inline

## printInfo()

template<Index Log2Dim>

void printInfo | ( | std::ostream & | os = std::cout | ) | const

inline

simple print method for debugging

## save()

template<Index Log2Dim>

void save | ( | std::ostream & | os | ) | const

inline

## seek()

template<Index Log2Dim>

void seek | ( | std::istream & | is | ) | const

inline

## set() [1/2]

template<Index Log2Dim>

void set | ( | bool | on | ) |

inline

Set all bits to the specified state.

## set() [2/2]

template<Index Log2Dim>

void set | ( | Index32 | n,
|  | bool | On )

inline

Set the nth bit to the specified state.

## setFirstOff()

template<Index Log2Dim>

void setFirstOff | ( |  | ) |

inline

Set the first bit off.

## setFirstOn()

template<Index Log2Dim>

void setFirstOn | ( |  | ) |

inline

Set the first bit on.

## setLastOff()

template<Index Log2Dim>

void setLastOff | ( |  | ) |

inline

Set the last bit off.

## setLastOn()

template<Index Log2Dim>

void setLastOn | ( |  | ) |

inline

Set the last bit on.

## setOff() [1/2]

template<Index Log2Dim>

void setOff | ( |  | ) |

inline

Set all bits off.

## setOff() [2/2]

template<Index Log2Dim>

void setOff | ( | Index32 | n | ) |

inline

Set the nth bit off.

## setOn() [1/2]

template<Index Log2Dim>

void setOn | ( |  | ) |

inline

Set all bits on.

## setOn() [2/2]

template<Index Log2Dim>

void setOn | ( | Index32 | n | ) |

inline

Set the nth bit on.

## toggle() [1/2]

template<Index Log2Dim>

void toggle | ( |  | ) |

inline

Toggle the state of all bits in the mask.

## toggle() [2/2]

template<Index Log2Dim>

void toggle | ( | Index32 | n | ) |

inline

Toggle the state of the nth bit.

## Member Data Documentation

## DIM

template<Index Log2Dim>

const Index32 DIM = 1<<Log2Dim

static

## LOG2DIM

template<Index Log2Dim>

const Index32 LOG2DIM = Log2Dim

static

## SIZE

template<Index Log2Dim>

const Index32 SIZE = 1<<3*Log2Dim

static

## WORD_COUNT

template<Index Log2Dim>

const Index32 WORD_COUNT = SIZE >> 6

static