42class CESIUM3DTILESSELECTION_API
Tileset final {
54 std::unique_ptr<TilesetContentLoader>&& pCustomLoader,
55 std::unique_ptr<Tile>&& pRootTile,
66 const std::string& url,
83 const std::string& ionAccessToken,
85 const std::string& ionAssetEndpointUrl =
"https://api.cesium.com/");
118 CesiumAsync::SharedFuture<
void>& getAsyncDestructionCompleteEvent();
142 void setShowCreditsOnScreen(
bool showCreditsOnScreen) noexcept;
155 return this->_externals;
163 return this->_asyncSystem;
168 return this->_asyncSystem;
183 return this->_options.ellipsoid;
188 return this->_options.ellipsoid;
199 const
Tile* getRootTile() const noexcept;
227 [[deprecated("Instead of `tileset.updateViewOffline(...)`, call "
228 "`tileset.updateViewGroupOffline(tileset.getDefaultViewGroup(), "
247 [[deprecated("Instead of `tileset.updateView(...)`, call "
248 "`tileset.updateViewGroup(tileset.getDefaultViewGroup(), ...)` "
250 updateView(const
std::vector<
ViewState>& frustums,
float deltaTime = 0.0f);
255 int32_t getNumberOfTilesLoaded() const;
264 float computeLoadProgress() noexcept;
292 void forEachLoadedTile(const
std::function<
void(
Tile& tile)>& callback);
299 void forEachLoadedTile(
300 const
std::function<
void(const
Tile& tile)>& callback) const;
306 int64_t getTotalDataBytes() const noexcept;
409 float deltaTime = 0.0f);
474 struct TraversalDetails {
482 bool allAreRenderable =
true;
493 bool anyWereRenderedLastFrame =
false;
513 uint32_t notYetRenderableCount = 0;
516 TraversalDetails _renderLeaf(
521 TraversalDetails _renderInnerTile(
525 bool _kickDescendantsAndRenderTile(
529 TraversalDetails& traversalDetails,
530 size_t firstRenderedDescendantIndex,
533 double tilePriority);
536 TraversalDetails _visitTile(
540 bool ancestorMeetsSse,
547 bool shouldVisit =
true;
555 const TilesetFrameState& frameState,
556 bool cullWithChildrenBounds,
557 CullResult& cullResult);
559 const TilesetFrameState& frameState,
560 const std::vector<double>& distances,
561 CullResult& cullResult);
563 const std::vector<ViewState>& frustums,
565 const std::vector<double>& distances,
566 bool culled)
const noexcept;
568 TraversalDetails _visitTileIfNeeded(
569 const TilesetFrameState& frameState,
571 bool ancestorMeetsSse,
573 ViewUpdateResult& result);
574 TraversalDetails _visitVisibleChildrenNearToFar(
575 const TilesetFrameState& frameState,
577 bool ancestorMeetsSse,
579 ViewUpdateResult& result);
596 bool _loadAndRenderAdditiveRefinedTile(
597 const TilesetFrameState& frameState,
599 ViewUpdateResult& result,
603 void _unloadCachedTiles(
double timeBudget)
noexcept;
605 void _updateLodTransitions(
606 const TilesetFrameState& frameState,
608 ViewUpdateResult& result)
const noexcept;
610 TilesetExternals _externals;
613 TilesetOptions _options;
617 std::vector<double> _distances;
621 std::vector<const TileOcclusionRendererProxy*> _childOcclusionProxies;
624 _pTilesetContentManager;
626 std::list<TilesetHeightRequest> _heightRequests;
628 TilesetViewGroup _defaultViewGroup;
630 void addTileToLoadQueue(
631 const TilesetFrameState& frameState,
633 TileLoadPriorityGroup priorityGroup,
636 static TraversalDetails createTraversalDetailsForSingleTile(
637 const TilesetFrameState& frameState,