/* */ #include "Piece.h" Piece Piece::nullPiece; void Piece::completeBlock(int blockIndex) { bitfield->setBit(blockIndex); bitfield->unsetUseBit(blockIndex); } void Piece::clearAllBlock() { bitfield->clearAllBit(); bitfield->clearAllUseBit(); } void Piece::setAllBlock() { bitfield->setAllBit(); } bool Piece::pieceComplete() const { return bitfield->isAllBitSet(); } void Piece::cancelBlock(int blockIndex) { bitfield->unsetUseBit(blockIndex); } int Piece::getMissingUnusedBlockIndex() const { int blockIndex = bitfield->getFirstMissingUnusedIndex(); if(blockIndex == -1) { return blockIndex; } bitfield->setUseBit(blockIndex); return blockIndex; } int Piece::getMissingBlockIndex() const { int blockIndex = bitfield->getMissingIndex(); if(blockIndex == -1) { return blockIndex; } bitfield->setUseBit(blockIndex); return blockIndex; } BlockIndexes Piece::getAllMissingBlockIndexes() const { return bitfield->getAllMissingIndexes(); }