MCPcopy Create free account
hub / github.com/CesiumGS/cesium-native / getAndMaybeConvertSpzExtension

Function getAndMaybeConvertSpzExtension

CesiumGltfReader/src/decodeSpz.cpp:386–428  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

384}
385
386CesiumGltf::ExtensionKhrGaussianSplattingCompressionSpz2*
387getAndMaybeConvertSpzExtension(
388 CesiumGltfReader::GltfReaderResult& readGltf,
389 CesiumGltf::MeshPrimitive& primitive,
390 CesiumGltf::ExtensionKhrGaussianSplatting& splatting) {
391
392 // Check for the real thing.
393 CesiumGltf::ExtensionKhrGaussianSplattingCompressionSpz2* pSpz =
394 splatting.getExtension<
395 CesiumGltf::ExtensionKhrGaussianSplattingCompressionSpz2>();
396 if (pSpz) {
397 return pSpz;
398 }
399
400 // Check for the old versions.
401 const CesiumUtility::JsonValue* pKhrSpz =
402 primitive.getGenericExtension(ALTERNATE_EXT_NAME1);
403 if (pKhrSpz != nullptr) {
404 CesiumGltf::ExtensionKhrGaussianSplattingCompressionSpz2* pResult =
405 addExtensionFromJsonValue(
406 ALTERNATE_EXT_NAME1,
407 readGltf,
408 splatting,
409 *pKhrSpz);
410 primitive.extensions.erase(ALTERNATE_EXT_NAME1);
411 return pResult;
412 }
413
414 const CesiumUtility::JsonValue* pSpzNoVersion =
415 splatting.getGenericExtension(ALTERNATE_EXT_NAME2);
416 if (pSpzNoVersion != nullptr) {
417 CesiumGltf::ExtensionKhrGaussianSplattingCompressionSpz2* pResult =
418 addExtensionFromJsonValue(
419 ALTERNATE_EXT_NAME2,
420 readGltf,
421 splatting,
422 *pSpzNoVersion);
423 primitive.extensions.erase(ALTERNATE_EXT_NAME2);
424 return pResult;
425 }
426
427 return nullptr;
428}
429} // namespace
430
431void decodeSpz(CesiumGltfReader::GltfReaderResult& readGltf) {

Callers 1

decodeSpzFunction · 0.85

Calls 2

getGenericExtensionMethod · 0.80

Tested by

no test coverage detected