Files
BXSSP_Andriod/Plugins/CesiumForUnreal/Source/ThirdParty/include/Cesium3DTilesSelection/TilesetExternals.h

83 lines
2.2 KiB
C
Raw Normal View History

2025-10-14 11:14:54 +08:00
#pragma once
#include "Library.h"
#include "TileOcclusionRendererProxy.h"
#include "TilesetSharedAssetSystem.h"
#include "spdlog-cesium.h"
#include <CesiumAsync/AsyncSystem.h>
#include <memory>
namespace CesiumAsync {
class IAssetAccessor;
class ITaskProcessor;
} // namespace CesiumAsync
namespace CesiumUtility {
class CreditSystem;
}
namespace Cesium3DTilesSelection {
class IPrepareRendererResources;
/**
* @brief External interfaces used by a {@link Tileset}.
*
* Not supposed to be used by clients.
*/
class CESIUM3DTILESSELECTION_API TilesetExternals final {
public:
/**
* @brief An external {@link CesiumAsync::IAssetAccessor}.
*/
std::shared_ptr<CesiumAsync::IAssetAccessor> pAssetAccessor;
/**
* @brief An external {@link IPrepareRendererResources}.
*/
std::shared_ptr<IPrepareRendererResources> pPrepareRendererResources;
/**
* @brief The async system to use to do work in threads.
*
* The tileset will automatically call
* {@link CesiumAsync::AsyncSystem::dispatchMainThreadTasks} from
* {@link Tileset::updateView}.
*/
CesiumAsync::AsyncSystem asyncSystem;
/**
* @brief An external {@link CesiumUtility::CreditSystem} that can be used to manage credit
* strings and track which which credits to show and remove from the screen
* each frame.
*/
std::shared_ptr<CesiumUtility::CreditSystem> pCreditSystem;
/**
* @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();
/**
* @brief A pool of renderer proxies to determine the occlusion state of
* tile bounding volumes.
*
* If not specified, the traversal will not attempt to leverage occlusion
* information.
*/
std::shared_ptr<TileOcclusionRendererProxyPool> pTileOcclusionProxyPool =
nullptr;
/**
* @brief The shared asset system used to facilitate sharing of common assets,
* such as images, between and within tilesets.
*/
CesiumUtility::IntrusivePointer<TilesetSharedAssetSystem> pSharedAssetSystem =
TilesetSharedAssetSystem::getDefault();
};
} // namespace Cesium3DTilesSelection