mirror of
https://git.mirrors.martin98.com/https://github.com/google/draco
synced 2025-08-12 18:09:04 +08:00
Merge pull request #231 from google/spec_valence_header_2.2
Spec update Valence traversal to 2.2
This commit is contained in:
commit
9c75f367f2
@ -40,7 +40,7 @@ void DecodeAttributeData() {
|
||||
curr_att_dec = 0;
|
||||
if (encoder_method == MESH_EDGEBREAKER_ENCODING) {
|
||||
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]) {
|
||||
UpdateVertexToCornerMap(i);
|
||||
}
|
||||
@ -86,7 +86,7 @@ void RecomputeVerticesInternal() {
|
||||
attr_face_to_vertex.push_back(face_to_vertex);
|
||||
corner_to_vertex_map_[curr_att_dec].assign(
|
||||
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];
|
||||
if (c < 0)
|
||||
continue;
|
||||
@ -129,7 +129,7 @@ void RecomputeVerticesInternal() {
|
||||
~~~~~
|
||||
void Attribute_AssignPointsToCorners() {
|
||||
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];
|
||||
if (c < 0)
|
||||
continue;
|
||||
@ -205,7 +205,7 @@ void SequentialGenerateSequence() {
|
||||
~~~~~
|
||||
void EdgebreakerGenerateSequence() {
|
||||
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) {
|
||||
if (att_dec_traversal_method[curr_att_dec] == MESH_TRAVERSAL_DEPTH_FIRST) {
|
||||
|
@ -19,26 +19,13 @@ void ParseEdgebreakerTraversalStandardData() {
|
||||
{:.draco-syntax }
|
||||
|
||||
|
||||
### DecodeEdgebreakerTraversalData()
|
||||
|
||||
~~~~~
|
||||
void DecodeEdgebreakerTraversalData() {
|
||||
ParseEdgebreakerTraversalStandardData();
|
||||
if (edgebreaker_traversal_type == VALENCE_EDGEBREAKER) {
|
||||
ParseEdgebreakerTraversalValenceData();
|
||||
}
|
||||
}
|
||||
~~~~~
|
||||
{:.draco-syntax }
|
||||
|
||||
|
||||
### EdgebreakerTraversalStart()
|
||||
|
||||
~~~~~
|
||||
void EdgebreakerTraversalStart() {
|
||||
last_symbol_ = -1;
|
||||
active_context_ = -1;
|
||||
DecodeEdgebreakerTraversalData();
|
||||
ParseEdgebreakerTraversalStandardData();
|
||||
if (edgebreaker_traversal_type == VALENCE_EDGEBREAKER) {
|
||||
EdgeBreakerTraversalValenceStart();
|
||||
}
|
||||
|
@ -1,18 +1,6 @@
|
||||
|
||||
## EdgeBreaker Traversal Valence
|
||||
|
||||
### ParseEdgebreakerTraversalValenceData()
|
||||
|
||||
~~~~~
|
||||
void ParseEdgebreakerTraversalValenceData() {
|
||||
eb_num_split_symbols varUI32
|
||||
eb_mode I8
|
||||
}
|
||||
~~~~~
|
||||
{:.draco-syntax }
|
||||
|
||||
|
||||
|
||||
### ParseValenceContextCounters()
|
||||
|
||||
~~~~~
|
||||
@ -28,7 +16,7 @@ void ParseValenceContextCounters(index) {
|
||||
|
||||
~~~~~
|
||||
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) {
|
||||
ParseValenceContextCounters(i);
|
||||
if (ebv_context_counters[i] > 0) {
|
||||
|
@ -156,8 +156,6 @@
|
||||
* Array of attribute connectivity data
|
||||
|
||||
#### EdgeBreaker Valence Traversal
|
||||
* eb_num_split_symbols
|
||||
* eb_mode
|
||||
* ebv_context_counters
|
||||
* Array of number of context symbols
|
||||
* ebv_context_symbols
|
||||
|
Loading…
x
Reference in New Issue
Block a user