// This file was generated by generate-classes. // DO NOT EDIT THIS FILE! #pragma once #include #include #include #include #include #include #include namespace Cesium3DTiles { /** * @brief Metadata about the tile's content and a link to the content. */ struct CESIUM3DTILES_API Content final : public CesiumUtility::ExtensibleObject { /** * @brief The original name of this type. */ static constexpr const char* TypeName = "Content"; /** * @brief An optional bounding volume that tightly encloses tile content. * tile.boundingVolume provides spatial coherence and * tile.content.boundingVolume enables tight view frustum culling. When this * is omitted, tile.boundingVolume is used. */ std::optional boundingVolume; /** * @brief A uri that points to tile content. When the uri is relative, it is * relative to the referring tileset JSON file. */ std::string uri; /** * @brief Metadata that is associated with this content. */ std::optional metadata; /** * @brief The group this content belongs to. The value is an index into the * array of `groups` that is defined for the containing tileset. */ std::optional group; /** * @brief 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. */ int64_t getSizeBytes() const { int64_t accum = 0; accum += int64_t(sizeof(Content)); accum += CesiumUtility::ExtensibleObject::getSizeBytes() - int64_t(sizeof(CesiumUtility::ExtensibleObject)); if (this->boundingVolume) { accum += this->boundingVolume->getSizeBytes() - int64_t(sizeof(Cesium3DTiles::BoundingVolume)); } accum += int64_t(this->uri.capacity() * sizeof(char)); if (this->metadata) { accum += this->metadata->getSizeBytes() - int64_t(sizeof(Cesium3DTiles::MetadataEntity)); } return accum; } }; } // namespace Cesium3DTiles