draco/docs/spec/draco.decoder.md
Frank Galligan 4efc3d27cc Update bitstream spec
This PR is associated with #134.
2017-07-22 22:35:54 -07:00

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}