libHSPlasma
|
Stores an array (vector) of bits. More...
#include <hsBitVector.h>
Classes | |
class | Bit |
References an individual bit within an hsBitVector. More... |
Public Member Functions | |
hsBitVector () | |
hsBitVector (const hsBitVector &init) | |
~hsBitVector () | |
bool | get (unsigned int idx) const |
void | set (unsigned int idx, bool b) |
size_t | size () const |
bool | operator[] (unsigned int idx) const |
Bit | operator[] (unsigned int idx) |
hsBitVector & | operator= (const hsBitVector &cpy) |
bool | isEmpty () const |
void | clear () |
void | setBit (unsigned int idx) |
void | clearBit (unsigned int idx) |
void | compact () |
const char * | getName (unsigned int idx) |
unsigned int | getValue (const char *name) |
void | setName (unsigned int idx, const char *name) |
void | read (hsStream *S) |
void | write (hsStream *S) |
void | prcWrite (pfPrcHelper *prc) |
void | prcParse (const pfPrcTag *tag) |
Stores an array (vector) of bits.
This can be used as a normal vector, but it allows direct access to numbered (or named) bits, e.g. for flags or a logical bitmap.
NOTE: In PyPlasma, this class has overloaded [] operators both for indexed and for named bits. For example:
hsBitVector::hsBitVector | ( | ) |
Constructs an empty bit vector
hsBitVector::hsBitVector | ( | const hsBitVector & | init | ) |
Copy constructor
hsBitVector::~hsBitVector | ( | ) |
Destructor
void hsBitVector::clear | ( | ) |
Clears the bit vector (set to all zeroes)
void hsBitVector::clearBit | ( | unsigned int | idx | ) |
Sets the bit at idx to false
void hsBitVector::compact | ( | ) |
Clean up extra space in the bit vector. This is called automatically by write().
bool hsBitVector::get | ( | unsigned int | idx | ) | const |
Returns the value of bit idx
const char* hsBitVector::getName | ( | unsigned int | idx | ) |
Returns the name of bit idx. If no name has been assigned with setName(), this function returns a string of idx.
unsigned int hsBitVector::getValue | ( | const char * | name | ) |
bool hsBitVector::isEmpty | ( | ) | const |
Returns true if the bit vector is empty (all zeroes)
hsBitVector& hsBitVector::operator= | ( | const hsBitVector & | cpy | ) |
Assignment operator, copies the value of cpy
bool hsBitVector::operator[] | ( | unsigned int | idx | ) | const |
Return the value of bit idx, for const hsBitVectors
void hsBitVector::prcWrite | ( | pfPrcHelper * | prc | ) |
Write PRC source for the bit vector
void hsBitVector::read | ( | hsStream * | S | ) |
Read this bit vector from a stream
void hsBitVector::set | ( | unsigned int | idx, |
bool | b | ||
) |
Set the value of bit idx to b
void hsBitVector::setBit | ( | unsigned int | idx | ) |
Sets the bit at idx to true
void hsBitVector::setName | ( | unsigned int | idx, |
const char * | name | ||
) |
Sets the name of bit idx to name, for use in getName() and PyPlasma's overloaded [] operator.
size_t hsBitVector::size | ( | ) | const |
Return the number of available bits.
void hsBitVector::write | ( | hsStream * | S | ) |
Write this bit vector to a stream