3#include <Cesium3DTilesSelection/TileLoadRequester.h>
4#include <Cesium3DTilesSelection/TileLoadTask.h>
5#include <Cesium3DTilesSelection/TileSelectionState.h>
6#include <Cesium3DTilesSelection/ViewUpdateResult.h>
7#include <CesiumUtility/CreditReferencer.h>
8#include <CesiumUtility/IntrusivePointer.h>
9#include <CesiumUtility/TreeTraversalState.h>
12#include <unordered_map>
19class TilesetContentManager;
88 return this->_traversalState;
113 friend class TilesetViewGroup;
222 double _weight = 1.0;
223 std::vector<TileLoadTask> _mainThreadLoadQueue;
224 std::vector<TileLoadTask> _workerThreadLoadQueue;
225 size_t _tilesAlreadyLoadingOrUnloading = 0;
226 float _loadProgressPercentage = 0.0f;
TileLoadRequester() noexcept
Constructs a new instance.
Captures information about the current frame during a call to Tileset::updateViewGroup.
float getPreviousLoadProgressPercentage() const
Gets the previous load progress percentage for this view group as of the last time it was updated.
bool hasMoreTilesToLoadInMainThread() const override
Tile * getNextTileToLoadInWorkerThread() override
void addToLoadQueue(const TileLoadTask &task)
Adds a tile load task to this view group's load queue.
void finishFrame(const Tileset &tileset, const TilesetFrameState &frameState)
Finishes the current frame by making the current tile selection state the previous one and releasing ...
size_t restoreTileLoadQueueCheckpoint(const LoadQueueCheckpoint &checkpoint)
Restores a previously-saved checkpoint of the tile load queue associated with this view group.
CesiumUtility::TreeTraversalState< Tile::Pointer, TileSelectionState > TraversalState
The type of the CesiumUtility::TreeTraversalState used to track tile selection states for this view g...
void startNewFrame(const Tileset &tileset, const TilesetFrameState &frameState)
Starts a new frame, clearing the set of tiles to be loaded so that a new set can be selected.
double getWeight() const override
Tile * getNextTileToLoadInMainThread() override
const ViewUpdateResult & getViewUpdateResult() const
Gets the result from the last time this view group was updated by calling Tileset::updateViewGroup.
TilesetViewGroup() noexcept
Constructs a new instance.
const TraversalState & getTraversalState() const noexcept
Gets an object used to track the selection state of tiles as they are traversed for this view group.
void setWeight(double weight) noexcept
Sets the weight of this view group relative to other tile requesters.
LoadQueueCheckpoint saveTileLoadQueueCheckpoint()
Saves a checkpoint of the tile load queue associated with this view group.
bool hasMoreTilesToLoadInWorkerThread() const override
size_t getMainThreadLoadQueueLength() const
Gets the number of tiles that are currently in the queue waiting to be loaded in the main thread.
TraversalState & getTraversalState() noexcept
Gets an object used to track the selection state of tiles as they are traversed for this view group.
size_t getWorkerThreadLoadQueueLength() const
Gets the number of tiles that are currently in the queue waiting to be loaded in the worker thread.
A 3D Tiles tileset, used for streaming massive heterogeneous 3D geospatial datasets.
Reports the results of Tileset::updateViewGroup.
Provides a way to reference a set of credits in a CreditSystem so that the references can easily be r...
Associates state (arbitrary data) with each node during partial, depth-first traversal of a tree....
Classes that implement the 3D Tiles standard.
Represents the need to load a particular Cesium3DTilesSelection::Tile with a particular priority.
A checkpoint within this view group's load queue.