draco/docs/spec/edgebreaker.traversal.decoder.md
Lou Quillio 8d8c88e08f Re-org files, refine styles, add README, et al.
Draco bitstream spec source should be ready for author contributions.
2017-07-12 15:18:53 -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_ = std::unique_ptr<BinaryDecoder[]>(
          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 }