cesium-native 0.44.2
Loading...
Searching...
No Matches
TilesetContentLoader.h
1#pragma once
2
3#include <Cesium3DTilesSelection/BoundingVolume.h>
4#include <Cesium3DTilesSelection/Library.h>
5#include <Cesium3DTilesSelection/SampleHeightResult.h>
6#include <Cesium3DTilesSelection/TileContent.h>
7#include <Cesium3DTilesSelection/TileLoadResult.h>
8#include <Cesium3DTilesSelection/TilesetOptions.h>
9#include <CesiumAsync/AsyncSystem.h>
10#include <CesiumAsync/Future.h>
11#include <CesiumAsync/IAssetAccessor.h>
12#include <CesiumGeometry/Axis.h>
13#include <CesiumGeospatial/Ellipsoid.h>
14#include <CesiumGltf/Model.h>
15#include <CesiumRasterOverlays/RasterOverlayDetails.h>
16
17#include <spdlog/logger.h>
18
19#include <functional>
20#include <memory>
21#include <optional>
22#include <vector>
23
24namespace Cesium3DTilesSelection {
25class Tile;
26class ITilesetHeightSampler;
27
31struct CESIUM3DTILESSELECTION_API TileLoadInput {
45 const Tile& tile,
46 const TilesetContentOptions& contentOptions,
47 const CesiumAsync::AsyncSystem& asyncSystem,
48 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
49 const std::shared_ptr<spdlog::logger>& pLogger,
50 const std::vector<CesiumAsync::IAssetAccessor::THeader>& requestHeaders,
51 const CesiumGeospatial::Ellipsoid& ellipsoid CESIUM_DEFAULT_ELLIPSOID);
52
56 const Tile& tile;
57
62
67
72 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor;
73
77 const std::shared_ptr<spdlog::logger>& pLogger;
78
82 const std::vector<CesiumAsync::IAssetAccessor::THeader>& requestHeaders;
83
88};
89
94struct CESIUM3DTILESSELECTION_API TileChildrenResult {
98 std::vector<Tile> children;
99
111};
112
116class CESIUM3DTILESSELECTION_API TilesetContentLoader {
117public:
121 virtual ~TilesetContentLoader() = default;
122
131
148 const Tile& tile,
149 const CesiumGeospatial::Ellipsoid& ellipsoid
150 CESIUM_DEFAULT_ELLIPSOID) = 0;
151
169 virtual ITilesetHeightSampler* getHeightSampler() { return nullptr; }
170};
171} // namespace Cesium3DTilesSelection
An interface to query heights from a tileset that can do so efficiently without necessarily downloadi...
A tile in a Tileset.
Definition Tile.h:96
The loader interface to load the tile content.
virtual TileChildrenResult createTileChildren(const Tile &tile, const CesiumGeospatial::Ellipsoid &ellipsoid=CesiumGeospatial::Ellipsoid::WGS84)=0
Create the tile's children.
virtual ~TilesetContentLoader()=default
Default virtual destructor.
virtual CesiumAsync::Future< TileLoadResult > loadTileContent(const TileLoadInput &input)=0
Load the tile content.
virtual ITilesetHeightSampler * getHeightSampler()
Gets an interface that can be used to efficiently query heights from this tileset.
A system for managing asynchronous requests and tasks.
Definition AsyncSystem.h:36
A value that will be available in the future, as produced by AsyncSystem.
Definition Promise.h:12
A quadratic surface defined in Cartesian coordinates.
Definition Ellipsoid.h:39
Classes that implement the 3D Tiles standard.
TileLoadResultState
Indicate the status of Cesium3DTilesSelection::TilesetContentLoader::loadTileContent and Cesium3DTile...
Store the result of creating tile's children after invoking TilesetContentLoader::createTileChildren.
std::vector< Tile > children
The children of this tile.
TileLoadResultState state
The result of creating children for this tile. Note that: when receiving RetryLater status,...
Store the parameters that are needed to load a tile.
const Tile & tile
The tile that the TilesetContentLoader will request the server for the content.
const std::shared_ptr< spdlog::logger > & pLogger
The logger that receives details of loading errors and warnings.
const std::vector< CesiumAsync::IAssetAccessor::THeader > & requestHeaders
The request headers that will be attached to the request.
const CesiumAsync::AsyncSystem & asyncSystem
The async system to run the loading in worker thread or main thread.
TileLoadInput(const Tile &tile, const TilesetContentOptions &contentOptions, const CesiumAsync::AsyncSystem &asyncSystem, const std::shared_ptr< CesiumAsync::IAssetAccessor > &pAssetAccessor, const std::shared_ptr< spdlog::logger > &pLogger, const std::vector< CesiumAsync::IAssetAccessor::THeader > &requestHeaders, const CesiumGeospatial::Ellipsoid &ellipsoid=CesiumGeospatial::Ellipsoid::WGS84)
Creates a new instance.
const CesiumGeospatial::Ellipsoid & ellipsoid
The ellipsoid that this tileset uses.
const TilesetContentOptions & contentOptions
The content options the TilesetContentLoader will use to process the content of the tile.
const std::shared_ptr< CesiumAsync::IAssetAccessor > & pAssetAccessor
The asset accessor to make requests for the tile content over the wire.
Options for configuring the parsing of a Tileset's content and construction of Gltf models.