cesium-native 0.51.0
Loading...
Searching...
No Matches
TilesetMetadata.h
1#pragma once
2
3#include <Cesium3DTiles/Asset.h>
4#include <Cesium3DTiles/GroupMetadata.h>
5#include <Cesium3DTiles/Properties.h>
6#include <Cesium3DTiles/Schema.h>
7#include <Cesium3DTiles/Statistics.h>
8#include <Cesium3DTilesSelection/Library.h>
9#include <CesiumAsync/SharedFuture.h>
10#include <CesiumUtility/ExtensibleObject.h>
11
12#include <optional>
13#include <string>
14#include <unordered_map>
15#include <vector>
16
17namespace CesiumAsync {
18class AsyncSystem;
19class IAssetAccessor;
20} // namespace CesiumAsync
21
22namespace Cesium3DTilesSelection {
23
29class CESIUM3DTILESSELECTION_API TilesetMetadata
31public:
32 ~TilesetMetadata() noexcept;
33
38
42 std::unordered_map<std::string, Cesium3DTiles::Properties> properties;
43
48 std::optional<Cesium3DTiles::Schema> schema;
49
54 std::optional<std::string> schemaUri;
55
59 std::optional<Cesium3DTiles::Statistics> statistics;
60
66 std::vector<Cesium3DTiles::GroupMetadata> groups;
67
71 std::optional<Cesium3DTiles::MetadataEntity> metadata;
72
78 std::optional<double> geometricError;
79
83 std::vector<std::string> extensionsUsed;
84
89 std::vector<std::string> extensionsRequired;
90
107 const CesiumAsync::AsyncSystem& asyncSystem,
108 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor);
109
110private:
111 std::optional<CesiumAsync::SharedFuture<void>> _loadingFuture;
112 std::optional<std::string> _loadingSchemaUri;
113 std::shared_ptr<bool> _pLoadingCanceled;
114};
115
116} // namespace Cesium3DTilesSelection
Holds the metadata associated with a Tileset or an external tileset. This holds all of the fields of ...
CesiumAsync::SharedFuture< void > & loadSchemaUri(const CesiumAsync::AsyncSystem &asyncSystem, const std::shared_ptr< CesiumAsync::IAssetAccessor > &pAssetAccessor)
Asynchronously loads the schema from the schemaUri. If the schemaUri does not contain a value,...
std::vector< Cesium3DTiles::GroupMetadata > groups
An array of groups that tile content may belong to. Each element of this array is a metadata entity t...
std::optional< Cesium3DTiles::Schema > schema
An object defining the structure of metadata classes and enums. When this is defined,...
std::vector< std::string > extensionsRequired
Names of 3D Tiles extensions required to properly load this tileset. Each element of this array shall...
std::optional< Cesium3DTiles::Statistics > statistics
An object containing statistics about metadata entities.
std::optional< double > geometricError
The error, in meters, introduced if this tileset is not rendered. At runtime, the geometric error is ...
std::optional< Cesium3DTiles::MetadataEntity > metadata
A metadata entity that is associated with this tileset.
std::vector< std::string > extensionsUsed
Names of 3D Tiles extensions used somewhere in this tileset.
std::unordered_map< std::string, Cesium3DTiles::Properties > properties
A dictionary object of metadata about per-feature properties.
Cesium3DTiles::Asset asset
Metadata about the entire tileset.
std::optional< std::string > schemaUri
The URI (or IRI) of the external schema file. When this is defined, then schema shall be undefined.
A system for managing asynchronous requests and tasks.
Definition AsyncSystem.h:36
Provides asynchronous access to assets, usually files downloaded via HTTP.
A value that will be available in the future, as produced by AsyncSystem. Unlike Future,...
Classes that implement the 3D Tiles standard.
Classes that support asynchronous operations.
Metadata about the entire tileset.
Definition Asset.h:15
The base class for objects that have extensions and extras.