cesium-native 0.66.0
Loading...
Searching...
No Matches
CesiumGltf::Extension3dTilesSubtree Struct Referencefinal

An object describing tile, content, and child subtree availability, attributes, and properties. More...

#include <CesiumGltf/Extension3dTilesSubtree.h>

Inheritance diagram for CesiumGltf::Extension3dTilesSubtree:
CesiumUtility::ExtensibleObject

Public Member Functions

int64_t getSizeBytes () const
 Calculates the size in bytes of this object, including the contents of all collections, pointers, and strings. This will NOT include the size of any extensions attached to the object. Calling this method may be slow as it requires traversing the object's entire structure.
 
- Public Member Functions inherited from CesiumUtility::ExtensibleObject
template<typename T>
bool hasExtension () const noexcept
 Checks if an extension exists given its static type.
 
template<typename T>
const T * getExtension () const noexcept
 Gets an extension given its static type.
 
template<typename T>
T * getExtension () noexcept
 Gets an extension given its static type.
 
const JsonValue * getGenericExtension (const std::string &extensionName) const noexcept
 Gets a generic extension with the given name as a CesiumUtility::JsonValue.
 
JsonValue * getGenericExtension (const std::string &extensionName) noexcept
 Gets a generic extension with the given name as a CesiumUtility::JsonValue.
 
template<typename T, typename... ConstructorArgumentTypes>
T & addExtension (ConstructorArgumentTypes &&... constructorArguments)
 Adds a statically-typed extension to this object.
 
template<typename T>
void removeExtension ()
 Removes a statically-typed extension from this object.
 
int64_t getSizeBytes () const
 Calculates the size in bytes of this ExtensibleObject, including all of its extras but NOT including its extensions. Calling this method may be slow as it requires traversing the entire object.
 

Public Attributes

CesiumGltf::Availability tileAvailability
 The availability of tiles in the subtree.
 
std::optional< CesiumGltf::Availability > contentAvailability
 The availability of contents in the subtree.
 
CesiumGltf::Availability childSubtreeAvailability
 The availability of child subtrees.
 
std::unordered_map< std::string, int32_t > tileAttributes
 A dictionary mapping tile attribute semantics to accessor indices.
 
std::unordered_map< std::string, int32_t > contentAttributes
 A dictionary mapping content attribute semantics to accessor indices.
 
int32_t tileProperties = -1
 Index of the property table containing tile properties.
 
int32_t contentProperties = -1
 Index of the property table containing content properties.
 
- Public Attributes inherited from CesiumUtility::ExtensibleObject
std::unordered_map< std::string, std::any > extensions
 The extensions attached to this object.
 
JsonValue::Object extras
 Application-specific data.
 
JsonValue::Object unknownProperties
 Unknown properties that exist on this object but do not have any representation in the statically-typed classes.
 

Static Public Attributes

static constexpr const char * TypeName = "Extension3dTilesSubtree"
 The original name of this type.
 
static constexpr const char * ExtensionName = "3DTILES_subtree"
 The official name of the extension. This should be the same as its key in the extensions object.
 

Detailed Description

An object describing tile, content, and child subtree availability, attributes, and properties.

Definition at line 19 of file Extension3dTilesSubtree.h.

Member Function Documentation

◆ getSizeBytes()

int64_t CesiumGltf::Extension3dTilesSubtree::getSizeBytes ( ) const
inline

Calculates the size in bytes of this object, including the contents of all collections, pointers, and strings. This will NOT include the size of any extensions attached to the object. Calling this method may be slow as it requires traversing the object's entire structure.

Definition at line 113 of file Extension3dTilesSubtree.h.

Member Data Documentation

◆ childSubtreeAvailability

CesiumGltf::Availability CesiumGltf::Extension3dTilesSubtree::childSubtreeAvailability

The availability of child subtrees.

The availability of children subtrees. The availability bitstream is a 1D boolean array where subtrees are ordered by their Morton index in the level of the tree immediately below the bottom row of the subtree. A child subtree's availability is determined by a single bit, 1 meaning a subtree exists at that spatial index, and 0 meaning it does not. The number of elements in the array is N^subtreeLevels where N is 4 for subdivision scheme QUADTREE and 8 for OCTREE. Availability may be stored in a buffer view or as a constant value that applies to all child subtrees. If availability is 0 for all child subtrees, then the tileset does not subdivide further.

Definition at line 64 of file Extension3dTilesSubtree.h.

◆ contentAttributes

std::unordered_map<std::string, int32_t> CesiumGltf::Extension3dTilesSubtree::contentAttributes

A dictionary mapping content attribute semantics to accessor indices.

A plain JSON object, where each key corresponds to a content attribute semantic and each value is the index of the accessor containing attribute's data. Attribute values only exists for available contents and are ordered by increasing tile index.

Definition at line 85 of file Extension3dTilesSubtree.h.

◆ contentAvailability

std::optional<CesiumGltf::Availability> CesiumGltf::Extension3dTilesSubtree::contentAvailability

The availability of contents in the subtree.

Definition at line 48 of file Extension3dTilesSubtree.h.

◆ contentProperties

int32_t CesiumGltf::Extension3dTilesSubtree::contentProperties = -1

Index of the property table containing content properties.

Content properties only exist for available contents and are tightly packed by increasing tile index. To access individual content properties, implementations may create a mapping from tile indices to content property indices.

Definition at line 105 of file Extension3dTilesSubtree.h.

◆ ExtensionName

const char* CesiumGltf::Extension3dTilesSubtree::ExtensionName = "3DTILES_subtree"
staticconstexpr

The official name of the extension. This should be the same as its key in the extensions object.

Definition at line 27 of file Extension3dTilesSubtree.h.

◆ tileAttributes

std::unordered_map<std::string, int32_t> CesiumGltf::Extension3dTilesSubtree::tileAttributes

A dictionary mapping tile attribute semantics to accessor indices.

A plain JSON object, where each key corresponds to a tile attribute semantic and each value is the index of the accessor containing attribute's data. Attribute values only exists for available tiles and are ordered by increasing tile index.

Definition at line 74 of file Extension3dTilesSubtree.h.

◆ tileAvailability

CesiumGltf::Availability CesiumGltf::Extension3dTilesSubtree::tileAvailability

The availability of tiles in the subtree.

The availability bitstream is a 1D boolean array where tiles are ordered by their level in the subtree and Morton index within that level. A tile's availability is determined by a single bit, 1 meaning a tile exists at that spatial index, and 0 meaning it does not. The number of elements in the array is (N^subtreeLevels - 1)/(N - 1) where N is 4 for subdivision scheme QUADTREE and 8 for OCTREE. Availability may be stored in a buffer view or as a constant value that applies to all tiles. If a non-root tile's availability is 1 its parent tile's availability must also be 1. tileAvailability.constant: 0 is disallowed, as subtrees must have at least one tile.

Definition at line 43 of file Extension3dTilesSubtree.h.

◆ tileProperties

int32_t CesiumGltf::Extension3dTilesSubtree::tileProperties = -1

Index of the property table containing tile properties.

Tile properties only exist for available tiles and are tightly packed by increasing tile index. To access individual tile properties, implementations may create a mapping from tile indices to tile property indices.

Definition at line 95 of file Extension3dTilesSubtree.h.

◆ TypeName

const char* CesiumGltf::Extension3dTilesSubtree::TypeName = "Extension3dTilesSubtree"
staticconstexpr

The original name of this type.

Definition at line 24 of file Extension3dTilesSubtree.h.


The documentation for this struct was generated from the following file: