cesium-native 0.44.2
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&
113 getRasterOverlayDetails() noexcept;
114
120 void setRasterOverlayDetails(
121 const CesiumRasterOverlays::RasterOverlayDetails& rasterOverlayDetails);
122
128 void setRasterOverlayDetails(
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
288 TileRenderContent* getRenderContent() noexcept;
289
294 const TileExternalContent* getExternalContent() const noexcept;
295
300 TileExternalContent* getExternalContent() noexcept;
301
302private:
303 TileContentKindImpl _contentKind;
304};
305} // namespace Cesium3DTilesSelection
A tile content container that can store and query the content type that is currently being owned by t...
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...
void setContentKind(TileEmptyContent content)
Construct an empty content tag for a tile.
void setContentKind(std::unique_ptr< TileRenderContent > &&content)
Set a glTF model content for a tile.
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
TileRenderContent(CesiumGltf::Model &&model)
Construct the content with a glTF model.
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