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

View File

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