5#include <Cesium3DTiles/Asset.h>
6#include <Cesium3DTiles/GroupMetadata.h>
7#include <Cesium3DTiles/Library.h>
8#include <Cesium3DTiles/MetadataEntity.h>
9#include <Cesium3DTiles/Properties.h>
10#include <Cesium3DTiles/Schema.h>
11#include <Cesium3DTiles/Statistics.h>
12#include <Cesium3DTiles/Tile.h>
13#include <CesiumUtility/ExtensibleObject.h>
17#include <unordered_map>
28 static constexpr const char* TypeName =
"Tileset";
38 std::unordered_map<std::string, Cesium3DTiles::Properties>
properties;
44 std::optional<Cesium3DTiles::Schema>
schema;
62 std::vector<Cesium3DTiles::GroupMetadata>
groups;
67 std::optional<Cesium3DTiles::MetadataEntity>
metadata;
74 double geometricError = double();
105 this->properties.bucket_count() *
107 for (
const auto& [k, v] : this->properties) {
108 accum += int64_t(k.capacity() *
sizeof(
char) -
sizeof(std::string));
115 if (this->schemaUri) {
116 accum += int64_t(this->schemaUri->capacity() *
sizeof(
char));
118 if (this->statistics) {
119 accum += this->statistics->getSizeBytes() -
128 if (this->metadata) {
129 accum += this->metadata->getSizeBytes() -
133 accum += int64_t(
sizeof(std::string) * this->extensionsUsed.capacity());
134 accum += int64_t(
sizeof(std::string) * this->extensionsRequired.capacity());
Classes for using 3D Tiles.
Metadata about the entire tileset.
int64_t getSizeBytes() const
Calculates the size in bytes of this object, including the contents of all collections,...
A dictionary object of metadata about per-feature properties.
An object defining classes and enums.
Statistics about entities.
A tile in a 3D Tiles tileset.
int64_t getSizeBytes() const
Calculates the size in bytes of this object, including the contents of all collections,...
std::vector< std::string > extensionsRequired
Names of 3D Tiles extensions required to properly load this tileset. Each element of this array shall...
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::Statistics > statistics
An object containing statistics about metadata entities.
std::optional< Cesium3DTiles::MetadataEntity > metadata
A metadata entity that is associated with this tileset.
std::unordered_map< std::string, Cesium3DTiles::Properties > properties
A dictionary object of metadata about per-feature properties.
TilesetSpec()=default
This class is not meant to be instantiated directly. Use Tileset instead.
std::optional< std::string > schemaUri
The URI (or IRI) of the external schema file. When this is defined, then schema shall be undefined.
Cesium3DTiles::Asset asset
Metadata about the entire tileset.
Cesium3DTiles::Tile root
The root tile.
std::vector< std::string > extensionsUsed
Names of 3D Tiles extensions used somewhere in this tileset.
int64_t getSizeBytes() const
Calculates the size in bytes of this object, including the contents of all collections,...
std::optional< Cesium3DTiles::Schema > schema
An object defining the structure of metadata classes and enums. When this is defined,...
This class is not meant to be instantiated directly. Use Tileset instead.
The base class for objects that have extensions and extras.
int64_t getSizeBytes() const
Calculates the size in bytes of this ExtensibleObject, including all of its extras but NOT including ...