MeshLib C++ Docs
Loading...
Searching...
No Matches
MRBitSet.h File Reference
#include "MRMeshFwd.h"
#include "MRId.h"
#include "MRphmap.h"
#include "MRVector.h"
#include "MRPch/MRBindingMacros.h"
#include <functional>
#include <iosfwd>
#include <iterator>

Go to the source code of this file.

Classes

class  MR::SetBitIteratorT< T >
 iterator to enumerate all indices with set bits in BitSet class or its derivatives More...
class  MR::BitSet
class  MR::TypedBitSet< I >

Namespaces

namespace  MR
 only for bindings generation

Functions

size_t MR::heapBytes (const BitSet &bs)
 returns the amount of memory given BitSet occupies on heap
bool MR::operator== (const BitSet &a, const BitSet &b)
 compare that two bit sets have the same set bits (they can be equal even if sizes are distinct but last bits are off)
template<typename I>
bool MR::operator== (const TypedBitSet< I > &a, const TypedBitSet< I > &b)
template<typename T, typename U>
void MR::operator== (const TypedBitSet< T > &a, const TypedBitSet< U > &b)=delete
 prohibit comparison of unrelated sets
template<typename I>
std::function< bool(I)> MR::makePredicate (const TypedBitSet< I > *bitset)
template<typename I>
std::function< bool(I)> MR::makePredicate (const TypedBitSet< I > &bitset)
template<typename I>
bool MR::contains (const TypedBitSet< I > *bitset, I id)
template<typename I>
bool MR::contains (const TypedBitSet< I > &bitset, I id)
template<typename I>
void MR::fillVectorWithSeqNums (const TypedBitSet< I > &bs, Vector< int, I > &vec)
 for each set bit of input bitset, writes its sequential number starting from 0 in the given vector that shall have appropriate size
template<typename I>
Vector< int, IMR::makeVectorWithSeqNums (const TypedBitSet< I > &bs)
 creates a Vector where for each set bit of input bitset its sequential number starting from 0 is returned; and -1 for reset bits
template<typename I>
HashMap< I, int > MR::makeHashMapWithSeqNums (const TypedBitSet< I > &bs)
 creates a HashMap where for each set bit of input bitset its sequential number starting from 0 is returned
BitSet MR::operator& (const BitSet &a, const BitSet &b)
BitSet MR::operator| (const BitSet &a, const BitSet &b)
BitSet MR::operator^ (const BitSet &a, const BitSet &b)
BitSet MR::operator- (const BitSet &a, const BitSet &b)