Files
OpenSceneGraph/src/osgPlugins/bsp/BITSET.cpp
Robert Osfield 065b1d4978 Fixed warnings
2009-01-28 12:28:04 +00:00

54 lines
1.2 KiB
C++

//////////////////////////////////////////////////////////////////////////////////////////
// BITSET.cpp
// functions for class for set of bits to represent many true/falses
// You may use this code however you wish, but if you do, please credit me and
// provide a link to my website in a readme file or similar
// Downloaded from: www.paulsprojects.net
// Created: 8th August 2002
//////////////////////////////////////////////////////////////////////////////////////////
#include "memory.h"
#include "BITSET.h"
bool BITSET::Init(int numberOfBits)
{
//Delete any memory allocated to bits
m_bits.clear();
//Calculate size
m_numBytes=(numberOfBits>>3)+1;
//Create memory
m_bits.reserve(m_numBytes);
m_bits_aux=&m_bits[0];
ClearAll();
return true;
}
void BITSET::ClearAll()
{
memset(m_bits_aux, 0, m_numBytes);
}
void BITSET::SetAll()
{
memset(m_bits_aux, 0xFF, m_numBytes);
}
void BITSET::Clear(int bitNumber)
{
m_bits_aux[bitNumber>>3] &= ~(1<<(bitNumber & 7));
}
void BITSET::Set(int bitNumber)
{
m_bits_aux[bitNumber>>3] |= 1<<(bitNumber&7);
}
unsigned char BITSET::IsSet(int bitNumber) const
{
return static_cast<unsigned char>(m_bits_aux[bitNumber>>3] & 1<<(bitNumber&7));
}