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

62 lines
2.0 KiB
C
Raw Normal View History

2025-10-14 11:14:54 +08:00
#pragma once
#include "Library.h"
#include <CesiumGeometry/OctreeTileID.h>
#include <CesiumGeometry/QuadtreeTileID.h>
#include <string>
#include <variant>
namespace Cesium3DTilesSelection {
/**
* @brief An identifier for a {@link Tile} inside the tile hierarchy.
*
* This ID is stored in the tile as the {@link Tile::getTileID}.
* It is assigned to the tile at construction time, and may be
* used to identify and access the children of a given tile.
*
* Depending on the exact type of the tile and its contents, this
* identifier may have different forms:
*
* * A `std::string`: This is an explicitly-described tile and
* the ID is the URL of the tile's content.
* * A {@link CesiumGeometry::QuadtreeTileID}: This is an implicit
* tile in the quadtree. The URL of the tile's content is formed
* by instantiating the context's template URL with this ID.
* * A {@link CesiumGeometry::OctreeTileID}: This is an implicit
* tile in the octree. The URL of the tile's content is formed
* by instantiating the context's template URL with this ID.
* * A {@link CesiumGeometry::UpsampledQuadtreeNode}: This tile doesn't
* have any content, but content for it can be created by subdividing
* the parent tile's content.
*/
typedef std::variant<
std::string,
CesiumGeometry::QuadtreeTileID,
CesiumGeometry::OctreeTileID,
CesiumGeometry::UpsampledQuadtreeNode>
TileID;
/**
* @brief Utility functions related to {@link TileID} objects.
*/
struct CESIUM3DTILESSELECTION_API TileIdUtilities {
/**
* @brief Creates an unspecified string representation of the given {@link
* TileID}.
*
* The returned string will contain information about the given tile ID,
* depending on its type. The exact format and contents of this string
* is not specified. This is mainly intended for printing informative
* log messages.
*
* @param tileId The tile ID
* @return The string
*/
static std::string createTileIdString(const TileID& tileId);
};
} // namespace Cesium3DTilesSelection