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

47 lines
1.2 KiB
Markdown

## 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 }