Skip to content

Reorganize metadata-related classes under new CesiumMetadata library - #1437

Open
j9liu wants to merge 12 commits into
mainfrom
metadata-library
Open

j9liu wants to merge 12 commits into
mainfrom
metadata-library

Conversation

@j9liu

@j9liu j9liu commented Sep 2, 2026 •

Copy link
Copy Markdown
Collaborator

Description

This was done in support of CesiumGS/cesium-unreal#1891, although I acknowledge the connection is not obvious.

CesiumGltf contained various utility classes for accessing metadata from a model's EXT_structural_metadata. However, CesiumGltf intended to be scoped as a lightweight glTF reader, per discussion in #760, and has suffered from some bloat over the years.

Although CesiumGltfContent was introduced for involved interaction/manipulation of glTF models, metadata is more special due to the overlap with 3D Tiles. In particular, the schemas between tilesets and glTF models with EXT_structural_metadata are identical in structure, but have unfortunate duplication between the generated spec classes. This overlap may be resolved with glTF 2.1, but even so, we may need to keep the Cesium3DTiles counterparts to parse older tileset versions.

Thus, this PR implements the suggestion in #760 to create a CesiumMetadata library for all the metadata-related classes.

Issue number or link

N/A

Author checklist

  • I have submitted a Contributor License Agreement (only needed once).
  • I have done a full self-review of my code.
  • I have updated CHANGES.md with a short summary of my change (for user-facing changes).
  • I have added or updated unit tests to ensure consistent code coverage as necessary.
  • I have updated the documentation as necessary.

Testing plan

TODO: Unreal/Unity PRs that implement the changes without breaking.

Reviewer checklist

Thank you for taking the time to review this PR. By approving a PR you are taking as much responsibility for these changes as the author.

As you review, please go through the checklist below:

  • Review and run all parts of the test plan on this branch and verify it matches expectations.
    • If the issue is a bug please make sure you can reproduce the bug in the main branch and then checkout this branch to make sure it actually solved the issue.
  • Review the code and make sure you do not have any remaining questions or concerns. You should understand the code change and the chosen approach. If you are not confident or have doubts about the code, please do not hesitate to ask questions.
  • Review the unit tests and make sure there are no missing tests or edge cases.
  • Review documentation changes and updates to CHANGES.md to make sure they accurately cover the work in this PR.
  • Verify that the Contributor License Agreement has been submitted, if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant