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

Method loadSubtree

Cesium3DTilesContent/src/SubtreeAvailability.cpp:154–193  ·  view source on GitHub ↗

static*/

Source from the content-addressed store, hash-verified

152}
153
154/*static*/ CesiumAsync::Future<std::optional<SubtreeAvailability>>
155SubtreeAvailability::loadSubtree(
156 ImplicitTileSubdivisionScheme subdivisionScheme,
157 uint32_t levelsInSubtree,
158 const CesiumAsync::AsyncSystem& asyncSystem,
159 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
160 const std::shared_ptr<spdlog::logger>& pLogger,
161 const std::string& subtreeUrl,
162 const std::vector<CesiumAsync::IAssetAccessor::THeader>& requestHeaders) {
163 auto pReader = std::make_shared<SubtreeFileReader>();
164 return pReader->load(asyncSystem, pAssetAccessor, subtreeUrl, requestHeaders)
165 .thenInMainThread(
166 [pLogger, subtreeUrl, subdivisionScheme, levelsInSubtree, pReader](
167 ReadJsonResult<Subtree>&& subtree)
168 -> std::optional<SubtreeAvailability> {
169 if (!subtree.errors.empty()) {
170 SPDLOG_LOGGER_ERROR(
171 pLogger,
172 "Errors while loading subtree from {}:\n- {}",
173 subtreeUrl,
174 CesiumUtility::joinToString(subtree.errors, "\n- "));
175 }
176 if (!subtree.warnings.empty()) {
177 SPDLOG_LOGGER_WARN(
178 pLogger,
179 "Warnings while loading subtree from {}:\n- {}",
180 subtreeUrl,
181 CesiumUtility::joinToString(subtree.warnings, "\n- "));
182 }
183
184 if (!subtree.value) {
185 return std::nullopt;
186 }
187
188 return SubtreeAvailability::fromSubtree(
189 subdivisionScheme,
190 levelsInSubtree,
191 std::move(*subtree.value));
192 });
193}
194
195SubtreeAvailability::SubtreeAvailability(
196 ImplicitTileSubdivisionScheme subdivisionScheme,

Callers

nothing calls this directly

Calls 3

joinToStringFunction · 0.85
thenInMainThreadMethod · 0.45
loadMethod · 0.45

Tested by

no test coverage detected