MeshLib
 
Loading...
Searching...
No Matches
MRBitSet.h File Reference
#include "MRMeshFwd.h"
#include "MRId.h"
#include "MRphmap.h"
#include "MRVector.h"
#include <boost/dynamic_bitset.hpp>
#include <iterator>
#include <functional>

Go to the source code of this file.

Classes

class  MR::BitSet
 container of bits More...
 
class  MR::TaggedBitSet< T >
 container of bits representing specific indices (faces, verts or edges) More...
 
class  MR::SetBitIteratorT< T >
 iterator to enumerate all indices with set bits in BitSet class or its derivatives More...
 

Namespaces

namespace  MR
 

Macros

#define BOOST_DYNAMIC_BITSET_DONT_USE_FRIENDS
 

Functions

MRMESH_API 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 T >
bool MR::operator== (const TaggedBitSet< T > &a, const TaggedBitSet< T > &b)
 
template<typename T , typename U >
void MR::operator== (const TaggedBitSet< T > &a, const TaggedBitSet< U > &b)=delete
 prohibit comparison of unrelated sets
 
template<typename T >
std::function< bool(Id< T >)> MR::makePredicate (const TaggedBitSet< T > *bitset)
 
template<typename T >
std::function< bool(Id< T >)> MR::makePredicate (const TaggedBitSet< T > &bitset)
 
template<typename T >
bool MR::contains (const TaggedBitSet< T > *bitset, Id< T > id)
 
template<typename T >
bool MR::contains (const TaggedBitSet< T > &bitset, Id< T > id)
 
template<typename T >
bool MR::operator== (const SetBitIteratorT< T > &a, const SetBitIteratorT< T > &b)
 
template<typename T >
bool MR::operator!= (const SetBitIteratorT< T > &a, const SetBitIteratorT< T > &b)
 
auto MR::begin (const BitSet &a)
 
auto MR::end (const BitSet &)
 
template<typename T >
auto MR::begin (const TaggedBitSet< T > &a)
 
template<typename T >
auto MR::end (const TaggedBitSet< T > &)
 
template<typename T >
Vector< int, Id< T > > MR::makeVectorWithSeqNums (const TaggedBitSet< T > &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 T >
HashMap< Id< T >, int > MR::makeHashMapWithSeqNums (const TaggedBitSet< T > &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)
 
template<typename T >
TaggedBitSet< T > MR::operator& (const TaggedBitSet< T > &a, const TaggedBitSet< T > &b)
 
template<typename T >
TaggedBitSet< T > MR::operator| (const TaggedBitSet< T > &a, const TaggedBitSet< T > &b)
 
template<typename T >
TaggedBitSet< T > MR::operator^ (const TaggedBitSet< T > &a, const TaggedBitSet< T > &b)
 
template<typename T >
TaggedBitSet< T > MR::operator- (const TaggedBitSet< T > &a, const TaggedBitSet< T > &b)
 

Macro Definition Documentation

◆ BOOST_DYNAMIC_BITSET_DONT_USE_FRIENDS

#define BOOST_DYNAMIC_BITSET_DONT_USE_FRIENDS