// This file was generated by generate-classes. // DO NOT EDIT THIS FILE! #pragma once #include #include #include #include namespace Cesium3DTiles { /** * @brief An object describing the availability of a set of elements. */ struct CESIUM3DTILES_API Availability final : public CesiumUtility::ExtensibleObject { /** * @brief The original name of this type. */ static constexpr const char* TypeName = "Availability"; /** * @brief Known values for Integer indicating whether all of the elements are * available (1) or all are unavailable (0). */ struct Constant { /** @brief UNAVAILABLE (`0`) */ static constexpr int32_t UNAVAILABLE = 0; /** @brief AVAILABLE (`1`) */ static constexpr int32_t AVAILABLE = 1; }; /** * @brief Index of a buffer view that indicates whether each element is * available. The bitstream conforms to the boolean array encoding described * in the 3D Metadata specification. If an element is available, its bit is 1, * and if it is unavailable, its bit is 0. */ std::optional bitstream; /** * @brief A number indicating how many 1 bits exist in the availability * bitstream. */ std::optional availableCount; /** * @brief Integer indicating whether all of the elements are available (1) or * all are unavailable (0). * * Known values are defined in {@link Constant}. * */ std::optional constant; /** * @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(Availability)); accum += CesiumUtility::ExtensibleObject::getSizeBytes() - int64_t(sizeof(CesiumUtility::ExtensibleObject)); return accum; } }; } // namespace Cesium3DTiles