@@ -772,27 +772,11 @@ TileLoadResult parseExternalTilesetInWorkerThread(
772772 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
773773 std::shared_ptr<CesiumAsync::IAssetRequest>&& pCompletedRequest,
774774 ExternalContentInitializer&& externalContentInitializer,
775- const CesiumGeospatial::Ellipsoid& ellipsoid) {
775+ const CesiumGeospatial::Ellipsoid& ellipsoid,
776+ rapidjson::Document& tilesetJson) {
776777 // create external tileset
777- const CesiumAsync::IAssetResponse* pResponse = pCompletedRequest->response ();
778- const auto & responseData = pResponse->data ();
779778 const auto & tileUrl = pCompletedRequest->url ();
780779
781- rapidjson::Document tilesetJson;
782- tilesetJson.Parse (
783- reinterpret_cast <const char *>(responseData.data ()),
784- responseData.size ());
785- if (tilesetJson.HasParseError ()) {
786- SPDLOG_LOGGER_ERROR (
787- pLogger,
788- " Error when parsing tileset JSON, error code {} at byte offset {}" ,
789- tilesetJson.GetParseError (),
790- tilesetJson.GetErrorOffset ());
791- return TileLoadResult::createFailedResult (
792- pAssetAccessor,
793- std::move (pCompletedRequest));
794- }
795-
796780 // Save the parsed external tileset into custom data.
797781 // We will propagate it back to tile later in the main
798782 // thread
@@ -873,23 +857,11 @@ TileLoadResult parseJsonContentInWorkerThread(
873857 if (const auto typeIt = tilesetJson.FindMember (" type" );
874858 typeIt != tilesetJson.MemberEnd ()) {
875859 auto geoJson = CesiumVectorData::GeoJsonDocument::fromGeoJson (tilesetJson);
876- if (!geoJson.value .has_value () || geoJson.errors .hasErrors ()) {
860+ if (!geoJson.value .has_value () || geoJson.errors .hasErrors () || translateToGltf ) {
877861 return TileLoadResult::createFailedResult (
878862 pAssetAccessor,
879863 std::move (pCompletedRequest));
880- } else if (!translateToGltf) {
881- return TileLoadResult{
882- std::move (*geoJson.value ),
883- upAxis,
884- std::nullopt ,
885- std::nullopt ,
886- std::nullopt ,
887- pAssetAccessor,
888- std::move (pCompletedRequest),
889- {},
890- TileLoadResultState::Success,
891- ellipsoid};
892- } else {
864+ } else {
893865 CesiumVectorData::GltfConverter geoJsonCoverter;
894866 CesiumVectorData::ConverterResult converterResult = geoJsonCoverter (*geoJson.value );
895867 return TileLoadResult{
@@ -913,8 +885,9 @@ TileLoadResult parseJsonContentInWorkerThread(
913885 pAssetAccessor,
914886 std::move (pCompletedRequest),
915887 std::move (externalContentInitializer),
916- tilesetJson,
917- ellipsoid);
888+ ellipsoid,
889+ tilesetJson
890+ );
918891 }
919892}
920893} // namespace
0 commit comments