Skip to content

Conversation

@javagl
Copy link
Contributor

@javagl javagl commented Dec 8, 2025

This is a DRAFT (never supposed to be merged), illustrating how some of the classes that are part of the (time) dynamic 3D Tiles PR could be used within the Multiple3DTileContent class.

The changes for this experiment are summarized in a single commit: 6adf794

I think that the Multiple3DTileContent class could be simplified considerably with some of these helper classes (most importantly, the ContentHandle). It would allow to omit the

this._contentsCreated
this._requestsInFlight
this._cancelCount
this._externalTilesetCount
this._arrayFetchPromises
this._requests
this._innerContentResources
this._serverKeys

properties, as well as the

updatePendingRequests
cancelPendingRequests
requestInnerContents
canScheduleAllRequests
requestInnerContent
createInnerContents
createInnerContent (without 's')
handleInnerContentFailed

functions, which juggled with these properties (and the tileset statistics) in a less-than-straightforward way.

The state here is sufficient for loading the Specs/MultipleContents examples, both in their "1.0" and "1.1" versions (!), and displaying them properly.

The specs themself will likely fail, because they are overconstrained and diligently check the behavior of the aforementioned functions. This is related to one of the greatest hurdles for actually implementing this change: There are quite a few places that already do some sort of "special handling" for multiple contents.

This is revolving around the Cesium3DTile.hasMultipleContent flag, some instanceof checks, the use of the innerContents getter of the Cesium3DTileContent interface, the usual state space and lifecycle issues related to the Cesium3DTile properties that involve contentState, content.ready, and contentReady (!), and several other details.

Eventually, one goal of actually applying this simplification could be to work towards a state where all these questions become less relevant. A smaller state space is easier to reason about.

@github-actions
Copy link

github-actions bot commented Dec 8, 2025

Thank you for the pull request, @javagl!

✅ We can confirm we have a CLA on file for you.

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.

2 participants