draco/docs/spec/edgebreaker.traversal.decoder.md
Frank Galligan 4efc3d27cc Update bitstream spec
This PR is associated with #134.
2017-07-22 22:35:54 -07:00

1.2 KiB

Edgebreaker Traversal Decoder

EdgebreakerTraversal_Start()

EdgebreakerTraversal_Start() {
  size                                                                  UI64
  symbol_buffer_                                                        size * UI8
  size                                                                  UI64
  start_face_buffer_                                                    size * UI8
  if (num_attribute_data > 0) {
    attribute_connectivity_decoders_ =
        new BinaryDecoder[num_attribute_data]
    for (i = 0; i < num_attribute_data; ++i) {
      attribute_connectivity_decoders_[i].StartDecoding()
      // RansBitDecoder_StartDecoding
  }
}

{:.draco-syntax }

Traversal_DecodeSymbol()

Traversal_DecodeSymbol() {
  symbol_buffer_.DecodeLeastSignificantBits32(1, &symbol);              bits1
  if (symbol != TOPOLOGY_C) {
    symbol_buffer_.DecodeLeastSignificantBits32(2, &symbol_suffix);     bits2
    symbol |= (symbol_suffix << 1);
  }
  return symbol
}

{:.draco-syntax }

DecodeAttributeSeam()

DecodeAttributeSeam(int attribute) {
  return attribute_connectivity_decoders_[attribute].DecodeNextBit();
}

{:.draco-syntax }