16#ifndef DRACO_COMPRESSION_BIT_CODERS_FOLDED_INTEGER_BIT_DECODER_H_
17#define DRACO_COMPRESSION_BIT_CODERS_FOLDED_INTEGER_BIT_DECODER_H_
26template <
class BitDecoderT>
34 for (
int i = 0; i < 32; i++) {
35 if (!folded_number_decoders_[i].
StartDecoding(source_buffer)) {
39 return bit_decoder_.StartDecoding(source_buffer);
49 for (
int i = 0; i < nbits; ++i) {
50 const bool bit = folded_number_decoders_[i].DecodeNextBit();
51 result = (result << 1) + bit;
57 for (
int i = 0; i < 32; i++) {
58 folded_number_decoders_[i].EndDecoding();
60 bit_decoder_.EndDecoding();
65 for (
int i = 0; i < 32; i++) {
66 folded_number_decoders_[i].Clear();
71 std::array<BitDecoderT, 32> folded_number_decoders_;
72 BitDecoderT bit_decoder_;
Definition decoder_buffer.h:30
bool DecodeNextBit()
Definition folded_integer_bit_decoder.h:43
void DecodeLeastSignificantBits32(int nbits, uint32_t *value)
Definition folded_integer_bit_decoder.h:47
~FoldedBit32Decoder()
Definition folded_integer_bit_decoder.h:30
FoldedBit32Decoder()
Definition folded_integer_bit_decoder.h:29
void EndDecoding()
Definition folded_integer_bit_decoder.h:56
bool StartDecoding(DecoderBuffer *source_buffer)
Definition folded_integer_bit_decoder.h:33
Definition attribute_octahedron_transform.cc:21