Spec: Remove symbol buffer from Valence EdgeBreaker

This commit is contained in:
Frank Galligan 2017-10-18 16:15:03 -07:00
parent f7ba052b7c
commit 8a665ca8ee
2 changed files with 38 additions and 5 deletions

View File

@ -1,15 +1,33 @@
## EdgeBreaker Traversal
### ParseEdgebreakerTraversalStandardData()
### ParseEdgebreakerTraversalStandardSymbolData()
~~~~~
void ParseEdgebreakerTraversalStandardData() {
void ParseEdgebreakerTraversalStandardSymbolData() {
eb_symbol_buffer_size UI64
eb_symbol_buffer size * UI8
}
~~~~~
{:.draco-syntax }
### ParseEdgebreakerTraversalStandardFaceData()
~~~~~
void ParseEdgebreakerTraversalStandardFaceData() {
eb_start_face_buffer_prob_zero UI8
eb_start_face_buffer_size varUI32
eb_start_face_buffer size * UI8
}
~~~~~
{:.draco-syntax }
### ParseEdgebreakerTraversalStandardAttributeConnectivityData()
~~~~~
void ParseEdgebreakerTraversalStandardAttributeConnectivityData() {
for (i = 0; i < num_attribute_data; ++i) {
attribute_connectivity_decoders_prob_zero[i] UI8
attribute_connectivity_decoders_size[i] varUI32
@ -20,14 +38,27 @@ void ParseEdgebreakerTraversalStandardData() {
{:.draco-syntax }
### DecodeEdgebreakerTraversalStandardData()
~~~~~
void DecodeEdgebreakerTraversalStandardData() {
ParseEdgebreakerTraversalStandardSymbolData()
ParseEdgebreakerTraversalStandardFaceData()
ParseEdgebreakerTraversalStandardAttributeConnectivityData()
}
~~~~~
{:.draco-syntax }
### EdgebreakerTraversalStart()
~~~~~
void EdgebreakerTraversalStart() {
last_symbol_ = -1;
active_context_ = -1;
ParseEdgebreakerTraversalStandardData();
if (edgebreaker_traversal_type == VALENCE_EDGEBREAKER) {
if (edgebreaker_traversal_type == STANDARD_EDGEBREAKER) {
DecodeEdgebreakerTraversalStandardData();
} else if (edgebreaker_traversal_type == VALENCE_EDGEBREAKER) {
EdgeBreakerTraversalValenceStart();
}
}

View File

@ -16,6 +16,8 @@ void ParseValenceContextCounters(index) {
~~~~~
void EdgeBreakerTraversalValenceStart() {
ParseEdgebreakerTraversalStandardFaceData()
ParseEdgebreakerTraversalStandardAttributeConnectivityData()
vertex_valences_.assign(num_encoded_vertices + num_encoded_split_symbols, 0);
for (i = 0; i < NUM_UNIQUE_VALENCES; ++i) {
ParseValenceContextCounters(i);
@ -38,7 +40,7 @@ void EdgebreakerValenceDecodeSymbol() {
[--ebv_context_counters[active_context_]];
last_symbol_ = edge_breaker_symbol_to_topology_id[symbol_id];
} else {
ParseEdgebreakerStandardSymbol();
last_symbol_ = TOPOLOGY_E;
}
}
~~~~~