3#include <CesiumAsync/Future.h>
4#include <CesiumAsync/Promise.h>
5#include <CesiumAsync/SharedFuture.h>
6#include <CesiumGeometry/Rectangle.h>
7#include <CesiumGeospatial/Ellipsoid.h>
8#include <CesiumRasterOverlays/Library.h>
9#include <CesiumUtility/IntrusivePointer.h>
10#include <CesiumUtility/ReferenceCounted.h>
12#include <glm/vec2.hpp>
101 CESIUM_DEFAULT_ELLIPSOID)
noexcept;
194 const glm::dvec2& targetScreenPixels);
273 void beginTileLoad(
bool isThrottledLoad) noexcept;
283 void finalizeTileLoad(
bool isThrottledLoad) noexcept;
289 _pPlaceholderTileProvider;
296 int64_t _tileDataBytes;
297 int32_t _totalTilesCurrentlyLoading;
298 int32_t _throttledTilesCurrentlyLoading;
A quadratic surface defined in Cartesian coordinates.
A RasterOverlay that has been activated for use. While a RasterOverlayTileProvider can be used direct...
CesiumAsync::SharedFuture< void > & getReadyEvent()
Gets a shared future that resolves when this instance is ready to provide tiles.
const CesiumRasterOverlays::RasterOverlay & getOverlay() const noexcept
Gets the RasterOverlay that was activated to create this instance.
ActivatedRasterOverlay(const RasterOverlayExternals &externals, const CesiumUtility::IntrusivePointer< const RasterOverlay > &pOverlay, const CesiumGeospatial::Ellipsoid &ellipsoid=CesiumGeospatial::Ellipsoid::WGS84) noexcept
Constructs a new instance.
const CesiumRasterOverlays::RasterOverlayTile * getPlaceholderTile() const noexcept
Gets the placeholder tile created by the getPlaceholderTileProvider.
CesiumUtility::IntrusivePointer< CesiumRasterOverlays::RasterOverlayTile > getTile(const CesiumGeometry::Rectangle &rectangle, const glm::dvec2 &targetScreenPixels)
Returns a new RasterOverlayTile with the given specifications.
void setTileProvider(const CesiumUtility::IntrusivePointer< RasterOverlayTileProvider > &pTileProvider)
Sets the tile provider for this activated overlay.
bool loadTileThrottled(RasterOverlayTile &tile)
Loads a tile, unless there are too many tile loads already in progress.
uint32_t getNumberOfTilesLoading() const noexcept
Returns the number of tiles that are currently loading.
void removeTile(RasterOverlayTile *pTile) noexcept
Removes a no-longer-referenced tile from this provider's cache and deletes it.
CesiumAsync::Future< RasterOverlayTileLoadResult > loadTile(RasterOverlayTile &tile)
Loads a tile immediately, without throttling requests.
const CesiumRasterOverlays::RasterOverlayTileProvider * getTileProvider() const noexcept
Gets the tile provider created for this activated overlay. This will be nullptr before getReadyEvent ...
const CesiumRasterOverlays::RasterOverlayTileProvider * getPlaceholderTileProvider() const noexcept
Gets the placeholder tile provider.
int64_t getTileDataBytes() const noexcept
Gets the number of bytes of tile data that are currently loaded.
~ActivatedRasterOverlay() noexcept
Destroys the instance. Use addReference and releaseReference instead of destroying this instance dire...
External interfaces used by a RasterOverlay.
Provides individual tiles for a RasterOverlay on demand.
Raster image data for a tile in a quadtree.
The base class for a rasterized image that can be draped over a Cesium3DTilesSelection::Tileset....
A smart pointer that calls addReference and releaseReference on the controlled object.
Classes that support asynchronous operations.
Basic geometry classes for Cesium.
Classes for raster overlays, which allow draping massive 2D textures over a model.
Utility classes for Cesium.
Holds a tile and its corresponding activated raster overlay. Used as the return value of ActivatedRas...
RasterOverlayTileLoadResult(const CesiumUtility::IntrusivePointer< ActivatedRasterOverlay > &pActivated_, const CesiumUtility::IntrusivePointer< RasterOverlayTile > &pTile_) noexcept
Constructs an instance.
CesiumUtility::IntrusivePointer< ActivatedRasterOverlay > pActivated
A CesiumUtility::IntrusivePointer to the ActivatedRasterOverlay used for this tile.
CesiumUtility::IntrusivePointer< RasterOverlayTile > pTile
A CesiumUtility::IntrusivePointer to the RasterOverlayTile used for this tile.