// This file was generated by generate-classes. // DO NOT EDIT THIS FILE! #pragma once #include #include #include #include #include namespace Cesium3DTiles { /** * @brief 3DTILES_ellipsoid extension data to define the referenced ellipsoid */ struct CESIUM3DTILES_API Extension3dTilesEllipsoid final : public CesiumUtility::ExtensibleObject { /** * @brief The original name of this type. */ static constexpr const char* TypeName = "Extension3dTilesEllipsoid"; /** @brief The official name of the extension. This should be the same as its * key in the `extensions` object. */ static constexpr const char* ExtensionName = "3DTILES_ellipsoid"; /** * @brief Name of the body the ellipsoid represents, or 'none' */ std::optional body; /** * @brief An array of three numbers that define the X, Y and Z radii values in * meters for the ellipsoid */ std::vector radii; /** * @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(Extension3dTilesEllipsoid)); accum += CesiumUtility::ExtensibleObject::getSizeBytes() - int64_t(sizeof(CesiumUtility::ExtensibleObject)); if (this->body) { accum += int64_t(this->body->capacity() * sizeof(char)); } accum += int64_t(sizeof(double) * this->radii.capacity()); return accum; } }; } // namespace Cesium3DTiles