3#include <CesiumAsync/AsyncSystem.h>
4#include <CesiumAsync/Future.h>
5#include <CesiumAsync/HttpHeaders.h>
6#include <CesiumAsync/IAssetAccessor.h>
7#include <CesiumGltf/ImageAsset.h>
8#include <CesiumGltf/Ktx2TranscodeTargets.h>
9#include <CesiumGltf/Model.h>
10#include <CesiumGltfReader/GltfSharedAssetSystem.h>
11#include <CesiumGltfReader/ImageDecoder.h>
12#include <CesiumGltfReader/Library.h>
13#include <CesiumJsonReader/IExtensionJsonHandler.h>
14#include <CesiumJsonReader/JsonReaderOptions.h>
33 std::optional<CesiumGltf::Model>
model;
153 const std::span<const std::byte>& data,
169 const std::string& url,
170 const std::vector<CesiumAsync::IAssetAccessor::THeader>& headers,
171 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
198 const std::string& baseUrl,
200 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
211 const std::span<const std::byte>& data,
218 [[deprecated(
"Use ImageDecoder::generateMipMaps instead.")]]
static std::
219 optional<std::string>
A system for managing asynchronous requests and tasks.
A value that will be available in the future, as produced by AsyncSystem.
GltfReaderResult readGltf(const std::span< const std::byte > &data, const GltfReaderOptions &options=GltfReaderOptions()) const
Reads a glTF or binary glTF (GLB) from a buffer.
GltfReader()
Constructs a new instance.
const CesiumJsonReader::JsonReaderOptions & getExtensions() const
Gets the options controlling how the JSON is read.
static CesiumAsync::Future< GltfReaderResult > resolveExternalData(const CesiumAsync::AsyncSystem &asyncSystem, const std::string &baseUrl, const CesiumAsync::HttpHeaders &headers, const std::shared_ptr< CesiumAsync::IAssetAccessor > &pAssetAccessor, const GltfReaderOptions &options, GltfReaderResult &&result)
Accepts the result of readGltf and resolves any remaining external buffers and images.
void postprocessGltf(GltfReaderResult &readGltf, const GltfReaderOptions &options)
Performs post-load processing on a glTF. The specific operations performed are controlled by the prov...
static ImageReaderResult readImage(const std::span< const std::byte > &data, const CesiumGltf::Ktx2TranscodeTargets &ktx2TranscodeTargets)
Reads an Image from a buffer.
CesiumAsync::Future< GltfReaderResult > loadGltf(const CesiumAsync::AsyncSystem &asyncSystem, const std::string &url, const std::vector< CesiumAsync::IAssetAccessor::THeader > &headers, const std::shared_ptr< CesiumAsync::IAssetAccessor > &pAssetAccessor, const GltfReaderOptions &options=GltfReaderOptions()) const
Reads a glTF or binary glTF file from a URL and resolves external buffers and images.
static std::optional< std::string > generateMipMaps(CesiumGltf::ImageAsset &image)
Generate mipmaps for this image.
CesiumJsonReader::JsonReaderOptions & getOptions()
Gets the options controlling how the JSON is read.
static CesiumUtility::IntrusivePointer< GltfSharedAssetSystem > getDefault()
Obtains an IntrusivePointer to the GltfSharedAssetSystem singleton.
Holds options for reading statically-typed data structures from JSON.
A smart pointer that calls addReference and releaseReference on the controlled object.
std::map< std::string, std::string, CaseInsensitiveCompare > HttpHeaders
Http Headers that maps case-insensitive header key with header value.
Classes for reading glTF models.
Options for how to read a glTF.
bool decodeEmbeddedImages
Whether embedded images in CesiumGltf::Model::buffers should be automatically decoded as part of the ...
bool dequantizeMeshData
Whether the quantized mesh data are dequantized and converted to floating-point values when loading,...
bool decodeDraco
Whether geometry compressed using the KHR_draco_mesh_compression extension should be automatically de...
CesiumUtility::IntrusivePointer< GltfSharedAssetSystem > pSharedAssetSystem
bool resolveExternalStructuralMetadata
Whether the schemaUri property of EXT_structural_metadata will be properly resolved....
bool clearDecodedDataUrls
Whether data URLs should be cleared after they are successfully decoded.
bool applyTextureTransform
Whether the texture coordinates of a texture are transformed or not, according to the KHR_texture_tra...
bool resolveExternalImages
Whether external images should be resolved.
CesiumGltf::Ktx2TranscodeTargets ktx2TranscodeTargets
For each possible input transmission format, this struct names the ideal target gpu-compressed pixel ...
bool decodeMeshOptData
Whether the mesh data are decompressed as part of the load process, or left in the compressed format ...
bool decodeDataUrls
Whether data URLs in buffers and images should be automatically decoded as part of the load process.
The result of reading a glTF model with GltfReader::readGltf.
std::optional< CesiumGltf::Model > model
The read model, or std::nullopt if the model could not be read.
std::vector< std::string > errors
Errors, if any, that occurred during the load process.
std::vector< std::string > warnings
Warnings, if any, that occurred during the load process.
The result of reading an image with ImageDecoder::readImage.
A 2D image asset, including its pixel data. The image may have mipmaps, and it may be encoded in a GP...
For each possible input transmission format, this struct names the ideal target gpu-compressed pixel ...