mirror of
https://git.mirrors.martin98.com/https://github.com/google/draco
synced 2025-08-14 06:26:05 +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;
|
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) {
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user