Merge pull request #231 from google/spec_valence_header_2.2

Spec update Valence traversal to 2.2
This commit is contained in:
FrankGalligan 2017-10-13 10:06:57 -07:00 committed by GitHub
commit 9c75f367f2
4 changed files with 6 additions and 33 deletions

View File

@ -40,7 +40,7 @@ void DecodeAttributeData() {
curr_att_dec = 0; curr_att_dec = 0;
if (encoder_method == MESH_EDGEBREAKER_ENCODING) { if (encoder_method == MESH_EDGEBREAKER_ENCODING) {
DecodeAttributeSeams(); DecodeAttributeSeams();
for (i = 0; i < num_encoded_vertices + eb_num_split_symbols; ++i) { for (i = 0; i < num_encoded_vertices + num_encoded_split_symbols; ++i) {
if (is_vert_hole_[i]) { if (is_vert_hole_[i]) {
UpdateVertexToCornerMap(i); UpdateVertexToCornerMap(i);
} }
@ -86,7 +86,7 @@ void RecomputeVerticesInternal() {
attr_face_to_vertex.push_back(face_to_vertex); attr_face_to_vertex.push_back(face_to_vertex);
corner_to_vertex_map_[curr_att_dec].assign( corner_to_vertex_map_[curr_att_dec].assign(
attr_face_to_vertex[attr][0].size() * 3, -1); attr_face_to_vertex[attr][0].size() * 3, -1);
for (v = 0; v < num_encoded_vertices + eb_num_split_symbols; ++v) { for (v = 0; v < num_encoded_vertices + num_encoded_split_symbols; ++v) {
c = vertex_corners_[v]; c = vertex_corners_[v];
if (c < 0) if (c < 0)
continue; continue;
@ -129,7 +129,7 @@ void RecomputeVerticesInternal() {
~~~~~ ~~~~~
void Attribute_AssignPointsToCorners() { void Attribute_AssignPointsToCorners() {
num_corners = face_to_vertex[0].size() * 3; num_corners = face_to_vertex[0].size() * 3;
for (v = 0; v < num_encoded_vertices + eb_num_split_symbols; ++v) { for (v = 0; v < num_encoded_vertices + num_encoded_split_symbols; ++v) {
c = vertex_corners_[v]; c = vertex_corners_[v];
if (c < 0) if (c < 0)
continue; continue;
@ -205,7 +205,7 @@ void SequentialGenerateSequence() {
~~~~~ ~~~~~
void EdgebreakerGenerateSequence() { void EdgebreakerGenerateSequence() {
if (att_dec_traversal_method[curr_att_dec] == MESH_TRAVERSAL_PREDICTION_DEGREE) { if (att_dec_traversal_method[curr_att_dec] == MESH_TRAVERSAL_PREDICTION_DEGREE) {
prediction_degree_.assign(num_encoded_vertices + eb_num_split_symbols, 0); prediction_degree_.assign(num_encoded_vertices + num_encoded_split_symbols, 0);
} }
for (i = 0; i < num_faces; ++i) { for (i = 0; i < num_faces; ++i) {
if (att_dec_traversal_method[curr_att_dec] == MESH_TRAVERSAL_DEPTH_FIRST) { if (att_dec_traversal_method[curr_att_dec] == MESH_TRAVERSAL_DEPTH_FIRST) {

View File

@ -19,26 +19,13 @@ void ParseEdgebreakerTraversalStandardData() {
{:.draco-syntax } {:.draco-syntax }
### DecodeEdgebreakerTraversalData()
~~~~~
void DecodeEdgebreakerTraversalData() {
ParseEdgebreakerTraversalStandardData();
if (edgebreaker_traversal_type == VALENCE_EDGEBREAKER) {
ParseEdgebreakerTraversalValenceData();
}
}
~~~~~
{:.draco-syntax }
### EdgebreakerTraversalStart() ### EdgebreakerTraversalStart()
~~~~~ ~~~~~
void EdgebreakerTraversalStart() { void EdgebreakerTraversalStart() {
last_symbol_ = -1; last_symbol_ = -1;
active_context_ = -1; active_context_ = -1;
DecodeEdgebreakerTraversalData(); ParseEdgebreakerTraversalStandardData();
if (edgebreaker_traversal_type == VALENCE_EDGEBREAKER) { if (edgebreaker_traversal_type == VALENCE_EDGEBREAKER) {
EdgeBreakerTraversalValenceStart(); EdgeBreakerTraversalValenceStart();
} }

View File

@ -1,18 +1,6 @@
## EdgeBreaker Traversal Valence ## EdgeBreaker Traversal Valence
### ParseEdgebreakerTraversalValenceData()
~~~~~
void ParseEdgebreakerTraversalValenceData() {
eb_num_split_symbols varUI32
eb_mode I8
}
~~~~~
{:.draco-syntax }
### ParseValenceContextCounters() ### ParseValenceContextCounters()
~~~~~ ~~~~~
@ -28,7 +16,7 @@ void ParseValenceContextCounters(index) {
~~~~~ ~~~~~
void EdgeBreakerTraversalValenceStart() { void EdgeBreakerTraversalValenceStart() {
vertex_valences_.assign(num_encoded_vertices + eb_num_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);
if (ebv_context_counters[i] > 0) { if (ebv_context_counters[i] > 0) {

View File

@ -156,8 +156,6 @@
* Array of attribute connectivity data * Array of attribute connectivity data
#### EdgeBreaker Valence Traversal #### EdgeBreaker Valence Traversal
* eb_num_split_symbols
* eb_mode
* ebv_context_counters * ebv_context_counters
* Array of number of context symbols * Array of number of context symbols
* ebv_context_symbols * ebv_context_symbols