cesium-native 0.48.0
Loading...
Searching...
No Matches
TileContent.h
1#pragma once
2
3#include <Cesium3DTilesSelection/Library.h>
4#include <Cesium3DTilesSelection/TilesetMetadata.h>
5#include <CesiumGeospatial/Projection.h>
6#include <CesiumGltf/Model.h>
7#include <CesiumRasterOverlays/RasterOverlayDetails.h>
8#include <CesiumUtility/CreditSystem.h>
9
10#include <memory>
11#include <variant>
12#include <vector>
13
14namespace Cesium3DTilesSelection {
21struct CESIUM3DTILESSELECTION_API TileUnknownContent {};
22
44struct CESIUM3DTILESSELECTION_API TileEmptyContent {};
45
51struct CESIUM3DTILESSELECTION_API TileExternalContent {
56};
57
62class CESIUM3DTILESSELECTION_API TileRenderContent {
63public:
70
76 const CesiumGltf::Model& getModel() const noexcept;
77
83 CesiumGltf::Model& getModel() noexcept;
84
90 void setModel(const CesiumGltf::Model& model);
91
97 void setModel(CesiumGltf::Model&& model);
98
104 const CesiumRasterOverlays::RasterOverlayDetails&
105 getRasterOverlayDetails() const noexcept;
106
112 CesiumRasterOverlays::RasterOverlayDetails&
114
121 const CesiumRasterOverlays::RasterOverlayDetails& rasterOverlayDetails);
122
129 CesiumRasterOverlays::RasterOverlayDetails&& rasterOverlayDetails);
130
136 const std::vector<CesiumUtility::Credit>& getCredits() const noexcept;
137
143 std::vector<CesiumUtility::Credit>& getCredits() noexcept;
144
151 void setCredits(std::vector<CesiumUtility::Credit>&& credits);
152
159 void setCredits(const std::vector<CesiumUtility::Credit>& credits);
160
166 void* getRenderResources() const noexcept;
167
174 void setRenderResources(void* pRenderResources) noexcept;
175
186 float getLodTransitionFadePercentage() const noexcept;
187
194 void setLodTransitionFadePercentage(float percentage) noexcept;
195
196private:
197 CesiumGltf::Model _model;
198 void* _pRenderResources;
199 CesiumRasterOverlays::RasterOverlayDetails _rasterOverlayDetails;
200 std::vector<CesiumUtility::Credit> _credits;
201 float _lodTransitionFadePercentage;
202};
203
208class CESIUM3DTILESSELECTION_API TileContent {
209 using TileContentKindImpl = std::variant<
212 std::unique_ptr<TileExternalContent>,
213 std::unique_ptr<TileRenderContent>>;
214
215public:
222
227
232 TileContent(std::unique_ptr<TileExternalContent>&& content);
233
240
245
250 void setContentKind(std::unique_ptr<TileExternalContent>&& content);
251
255 void setContentKind(std::unique_ptr<TileRenderContent>&& content);
256
260 bool isUnknownContent() const noexcept;
261
265 bool isEmptyContent() const noexcept;
266
271 bool isExternalContent() const noexcept;
272
276 bool isRenderContent() const noexcept;
277
282 const TileRenderContent* getRenderContent() const noexcept;
283
289
295
301
302private:
303 TileContentKindImpl _contentKind;
304};
305} // namespace Cesium3DTilesSelection
TileContent(std::unique_ptr< TileExternalContent > &&content)
Construct an external content for a tile whose content points to an external tileset.
TileContent(TileEmptyContent content)
Construct an empty content for a tile.
TileContent()
Construct an unknown content for a tile. This constructor is useful when the tile content is known af...
const TileExternalContent * getExternalContent() const noexcept
Get the TileExternalContent which stores the details of the external tileset.
void setContentKind(TileEmptyContent content)
Construct an empty content tag for a tile.
const TileRenderContent * getRenderContent() const noexcept
Get the TileRenderContent which stores the glTF model and render resources of the tile.
bool isExternalContent() const noexcept
Query if a tile has an external content which points to an external tileset.
void setContentKind(std::unique_ptr< TileRenderContent > &&content)
Set a glTF model content for a tile.
bool isEmptyContent() const noexcept
Query if a tile has an empty content.
bool isRenderContent() const noexcept
Query if a tile has an glTF model content.
void setContentKind(std::unique_ptr< TileExternalContent > &&content)
Set an external content for a tile whose content points to an external tileset.
bool isUnknownContent() const noexcept
Query if a tile has an unknown content.
void setContentKind(TileUnknownContent content)
Set an unknown content tag for a tile. This constructor is useful when the tile content is known afte...
A content tag that indicates a tile has a glTF model content and render resources for the model.
Definition TileContent.h:62
void setModel(const CesiumGltf::Model &model)
Set the glTF model for this content.
void setCredits(std::vector< CesiumUtility::Credit > &&credits)
Set the list of Credit for the content.
void * getRenderResources() const noexcept
Get the render resources created for the glTF model of the content.
void setLodTransitionFadePercentage(float percentage) noexcept
Set the fade percentage of this tile during an LOD transition with. Not to be used by clients.
TileRenderContent(CesiumGltf::Model &&model)
Construct the content with a glTF model.
const std::vector< CesiumUtility::Credit > & getCredits() const noexcept
Get the list of Credit of the content.
void setRenderResources(void *pRenderResources) noexcept
Set the render resources created for the glTF model of the content.
float getLodTransitionFadePercentage() const noexcept
Get the fade percentage that this tile during an LOD transition.
void setRasterOverlayDetails(const CesiumRasterOverlays::RasterOverlayDetails &rasterOverlayDetails)
Set the CesiumRasterOverlays::RasterOverlayDetails which is the result of generating raster overlay U...
const CesiumRasterOverlays::RasterOverlayDetails & getRasterOverlayDetails() const noexcept
Get the CesiumRasterOverlays::RasterOverlayDetails which is the result of generating raster overlay U...
const CesiumGltf::Model & getModel() const noexcept
Retrieve a glTF model that is owned by this content.
Holds the metadata associated with a Tileset or an external tileset.
Classes that implement the 3D Tiles standard.
Classes for working with glTF models.
Classes for raster overlays, which allow draping massive 2D textures over a model.
Utility classes for Cesium.
STL namespace.
A content tag that indicates a tile has no content.
Definition TileContent.h:44
A content tag that indicates a tile content points to an external tileset. When this tile is loaded,...
Definition TileContent.h:51
TilesetMetadata metadata
The metadata associated with this tileset.
Definition TileContent.h:55
A content tag that indicates the TilesetContentLoader does not know if a tile's content will point to...
Definition TileContent.h:21
This class is not meant to be instantiated directly. Use Model instead.
Definition Model.h:14