ralpha-assets/Plugins/CesiumForUnreal/Source/ThirdParty/include/CesiumRasterOverlays/RasterOverlayExternals.h

63 lines
1.9 KiB
C++

#pragma once
#include <CesiumAsync/AsyncSystem.h>
#include <CesiumAsync/IAssetAccessor.h>
#include <CesiumRasterOverlays/IPrepareRasterOverlayRendererResources.h>
#include <CesiumRasterOverlays/Library.h>
#include <CesiumUtility/CreditSystem.h>
#include <spdlog/spdlog.h>
#include <memory>
namespace CesiumRasterOverlays {
/**
* @brief External interfaces used by a @ref RasterOverlay.
*/
class CESIUMRASTEROVERLAYS_API RasterOverlayExternals final {
public:
/**
* @brief The @ref CesiumAsync::IAssetAccessor that is used to download
* raster overlay tiles and other assets.
*
* This may only be `nullptr` if the raster overlay does not attempt to
* download any resources.
*/
std::shared_ptr<CesiumAsync::IAssetAccessor> pAssetAccessor = nullptr;
/**
* @brief The @ref IPrepareRasterOverlayRendererResources that is used to
* create renderer-specific resources for raster overlay tiles.
*
* This may be `nullptr` if the renderer does not need to create any resources
* for raster overlays.
*/
std::shared_ptr<IPrepareRasterOverlayRendererResources>
pPrepareRendererResources = nullptr;
/**
* @brief The async system to use to do work in threads.
*/
CesiumAsync::AsyncSystem asyncSystem;
/**
* @brief The @ref CesiumUtility::CreditSystem that can be used to manage
* credit strings and periodically query which credits to show and which to
* remove from the screen.
*
* While not recommended, this may be `nullptr` if the client does not need to
* receive credits.
*/
std::shared_ptr<CesiumUtility::CreditSystem> pCreditSystem = nullptr;
/**
* @brief A spdlog logger that will receive log messages.
*
* If not specified, defaults to `spdlog::default_logger()`.
*/
std::shared_ptr<spdlog::logger> pLogger = spdlog::default_logger();
};
} // namespace CesiumRasterOverlays