#pragma once #include #include #include namespace CesiumGltf { struct Schema; } namespace CesiumGltfReader { /** * @brief Contains assets that are potentially shared across multiple glTF * models. */ class GltfSharedAssetSystem : public CesiumUtility::ReferenceCountedThreadSafe { public: /** * @brief Obtains an `IntrusivePointer` to the `GltfSharedAssetSystem` * singleton. */ static CesiumUtility::IntrusivePointer getDefault(); virtual ~GltfSharedAssetSystem() = default; /** * @brief A depot containing images loaded from glTFs. * * See \ref CesiumGltf::ImageAsset "ImageAsset" and \ref * NetworkImageAssetDescriptor. */ using ImageDepot = CesiumAsync:: SharedAssetDepot; /** * @brief The asset depot for images. */ CesiumUtility::IntrusivePointer pImage; /** * @brief A depot containing schemas loaded from URIs contained in the glTF * EXT_structural_metadata extension. * * See \ref CesiumGltf::Schema "Schema" and \ref NetworkSchemaAssetDescriptor. */ using SchemaDepot = CesiumAsync:: SharedAssetDepot; /** * @brief The asset depot for schemas. */ CesiumUtility::IntrusivePointer pExternalMetadataSchema; }; } // namespace CesiumGltfReader