109 lines
3.1 KiB
C++
109 lines
3.1 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
|
|
namespace CesiumITwinClient {
|
|
|
|
/**
|
|
* @brief The type of content obtained from the iTwin Cesium Curated Content
|
|
* API.
|
|
*
|
|
* See
|
|
* https://developer.bentley.com/apis/cesium-curated-content/operations/list-content/#contenttype
|
|
* for more information.
|
|
*/
|
|
enum class CesiumCuratedContentType : uint8_t {
|
|
/** @brief The content type returned is not a known type. */
|
|
Unknown = 0,
|
|
/** @brief The content is a 3D Tiles tileset. */
|
|
Cesium3DTiles = 1,
|
|
/** @brief The content is a glTF model. */
|
|
Gltf = 2,
|
|
/**
|
|
* @brief The content is imagery that can be loaded with \ref
|
|
* CesiumRasterOverlays::ITwinCesiumCuratedContentRasterOverlay.
|
|
*/
|
|
Imagery = 3,
|
|
/** @brief The content is quantized mesh terrain. */
|
|
Terrain = 4,
|
|
/** @brief The content is in the Keyhole Markup Language (KML) format. */
|
|
Kml = 5,
|
|
/**
|
|
* @brief The content is in the Cesium Language (CZML) format.
|
|
*
|
|
* See https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/CZML-Guide
|
|
* for more information.
|
|
*/
|
|
Czml = 6,
|
|
/** @brief The content is in the GeoJSON format. */
|
|
GeoJson = 7,
|
|
};
|
|
|
|
/**
|
|
* @brief Obtains a \ref CesiumCuratedContentType value from the provided
|
|
* string.
|
|
*
|
|
* See
|
|
* https://developer.bentley.com/apis/cesium-curated-content/operations/list-content/#contenttype
|
|
* for the list of possible values.
|
|
*/
|
|
CesiumCuratedContentType
|
|
cesiumCuratedContentTypeFromString(const std::string& str);
|
|
|
|
/**
|
|
* @brief Describes the state of the content during the upload and tiling
|
|
* processes.
|
|
*
|
|
* See
|
|
* https://developer.bentley.com/apis/cesium-curated-content/operations/list-content/#contentstatus
|
|
* for more information.
|
|
*/
|
|
enum class CesiumCuratedContentStatus : uint8_t {
|
|
Unknown = 0,
|
|
AwaitingFiles = 1,
|
|
NotStarted = 2,
|
|
InProgress = 3,
|
|
Complete = 4,
|
|
Error = 5,
|
|
DataError = 6
|
|
};
|
|
|
|
/**
|
|
* @brief Obtains a \ref CesiumCuratedContentStatus value from the provided
|
|
* string.
|
|
*
|
|
* See
|
|
* https://developer.bentley.com/apis/cesium-curated-content/operations/list-content/#contentstatus
|
|
* for the list of possible values.
|
|
*/
|
|
CesiumCuratedContentStatus
|
|
cesiumCuratedContentStatusFromString(const std::string& str);
|
|
|
|
/**
|
|
* @brief A single asset obtained from the iTwin Cesium Curated Content API.
|
|
*
|
|
* See
|
|
* https://developer.bentley.com/apis/cesium-curated-content/operations/list-content/#content
|
|
* for more information.
|
|
*/
|
|
struct CesiumCuratedContentAsset {
|
|
/** @brief The unique identifier for the content. */
|
|
uint64_t id;
|
|
/** @brief The type of the content. */
|
|
CesiumCuratedContentType type;
|
|
/** @brief The name of the content. */
|
|
std::string name;
|
|
/** @brief A Markdown string describing the content. */
|
|
std::string description;
|
|
/**
|
|
* @brief A Markdown compatible string containing any required attribution for
|
|
* the content.
|
|
*
|
|
* Clients will be required to display the attribution to end users.
|
|
*/
|
|
std::string attribution;
|
|
/** @brief The status of the content. */
|
|
CesiumCuratedContentStatus status;
|
|
};
|
|
} // namespace CesiumITwinClient
|