mirror of
https://git.mirrors.martin98.com/https://github.com/google/draco
synced 2025-07-29 17:32:02 +08:00
1.2 KiB
1.2 KiB
Draco Decoder
Decode()
Decode() {
DecodeHeader()
if (flags & METADATA_FLAG_MASK)
DecodeGeometryMetadata(metadata)
DecodeConnectivityData()
DecodeAttributeData()
}
{:.draco-syntax}
DecodeHeader()
DecodeHeader() {
draco_string UI8[5]
major_version UI8
minor_version UI8
encoder_type UI8
encoder_method UI8
flags
}
{:.draco-syntax}
DecodeAttributeData()
DecodeAttributeData() {
num_attributes_decoders UI8
for (i = 0; i < num_attributes_decoders; ++i) {
CreateAttributesDecoder(i);
}
for (auto &att_dec : attributes_decoders_) {
att_dec->Initialize(this, point_cloud_)
}
for (i = 0; i < num_attributes_decoders; ++i) {
attributes_decoders_[i]->DecodeAttributesDecoderData(buffer_)
}
DecodeAllAttributes()
OnAttributesDecoded()
{:.draco-syntax}