@@ -197,14 +197,15 @@ int main(int argc, char **argv) {
197
197
}
198
198
199
199
// TODO: Find more better way to Recursively resolve references/payload/variants
200
- bool all_resolved = true ;
201
200
for (int i = 0 ; i < kMaxIteration ; i++) {
202
201
202
+ bool has_unresolved = false ;
203
+
203
204
if (comp_features.references ) {
204
205
if (!src_layer.check_unresolved_references ()) {
205
- all_resolved = true ;
206
+ std::cout << " # iter " << i << " : no unresolved references. \n " ;
206
207
} else {
207
- all_resolved = false ;
208
+ has_unresolved = true ;
208
209
209
210
tinyusdz::Layer composited_layer;
210
211
if (!tinyusdz::CompositeReferences (resolver, src_layer, &composited_layer, &warn, &err)) {
@@ -225,79 +226,82 @@ int main(int argc, char **argv) {
225
226
226
227
if (comp_features.payload ) {
227
228
if (!src_layer.check_unresolved_payload ()) {
228
- all_resolved = true ;
229
+ std::cout << " # iter " << i << " : no unresolved payload. \n " ;
229
230
} else {
230
- all_resolved = false ;
231
- }
231
+ has_unresolved = true ;
232
232
233
- tinyusdz::Layer composited_layer;
234
- if (!tinyusdz::CompositePayload (resolver, src_layer, &composited_layer, &warn, &err)) {
235
- std::cerr << " Failed to composite `payload`: " << err << " \n " ;
236
- return -1 ;
237
- }
233
+ tinyusdz::Layer composited_layer;
234
+ if (!tinyusdz::CompositePayload (resolver, src_layer, &composited_layer, &warn, &err)) {
235
+ std::cerr << " Failed to composite `payload`: " << err << " \n " ;
236
+ return -1 ;
237
+ }
238
238
239
- if (warn.size ()) {
240
- std::cout << " WARN: " << warn << " \n " ;
241
- }
239
+ if (warn.size ()) {
240
+ std::cout << " WARN: " << warn << " \n " ;
241
+ }
242
242
243
- std::cout << " # `payload` composited\n " ;
244
- std::cout << composited_layer << " \n " ;
243
+ std::cout << " # `payload` composited\n " ;
244
+ std::cout << composited_layer << " \n " ;
245
245
246
- src_layer = std::move (composited_layer);
246
+ src_layer = std::move (composited_layer);
247
+ }
247
248
}
248
249
249
250
if (comp_features.inherits ) {
250
251
if (!src_layer.check_unresolved_inherits ()) {
251
- all_resolved = true ;
252
+ std::cout << " # iter " << i << " : no unresolved inherits. \n " ;
252
253
} else {
253
- all_resolved = false ;
254
- }
254
+ has_unresolved = true ;
255
255
256
- tinyusdz::Layer composited_layer;
257
- if (!tinyusdz::CompositeInherits (src_layer, &composited_layer, &warn, &err)) {
258
- std::cerr << " Failed to composite `inherits`: " << err << " \n " ;
259
- return -1 ;
260
- }
256
+ tinyusdz::Layer composited_layer;
257
+ if (!tinyusdz::CompositeInherits (src_layer, &composited_layer, &warn, &err)) {
258
+ std::cerr << " Failed to composite `inherits`: " << err << " \n " ;
259
+ return -1 ;
260
+ }
261
261
262
- if (warn.size ()) {
263
- std::cout << " WARN: " << warn << " \n " ;
264
- }
262
+ if (warn.size ()) {
263
+ std::cout << " WARN: " << warn << " \n " ;
264
+ }
265
265
266
- std::cout << " # `inherits` composited\n " ;
267
- std::cout << composited_layer << " \n " ;
266
+ std::cout << " # `inherits` composited\n " ;
267
+ std::cout << composited_layer << " \n " ;
268
268
269
- src_layer = std::move (composited_layer);
269
+ src_layer = std::move (composited_layer);
270
+ }
270
271
}
271
272
272
273
if (comp_features.variantSets ) {
273
274
if (!src_layer.check_unresolved_variant ()) {
274
- all_resolved = true ;
275
+ std::cout << " # iter " << i << " : no unresolved variant. \n " ;
275
276
} else {
276
- all_resolved = false ;
277
- }
277
+ has_unresolved = true ;
278
278
279
- tinyusdz::Layer composited_layer;
280
- if (!tinyusdz::CompositeVariant (src_layer, &composited_layer, &warn, &err)) {
281
- std::cerr << " Failed to composite `variantSet`: " << err << " \n " ;
282
- return -1 ;
283
- }
279
+ tinyusdz::Layer composited_layer;
280
+ if (!tinyusdz::CompositeVariant (src_layer, &composited_layer, &warn, &err)) {
281
+ std::cerr << " Failed to composite `variantSet`: " << err << " \n " ;
282
+ return -1 ;
283
+ }
284
284
285
- if (warn.size ()) {
286
- std::cout << " WARN: " << warn << " \n " ;
287
- }
285
+ if (warn.size ()) {
286
+ std::cout << " WARN: " << warn << " \n " ;
287
+ }
288
288
289
- std::cout << " # `variantSet` composited\n " ;
290
- std::cout << composited_layer << " \n " ;
289
+ std::cout << " # `variantSet` composited\n " ;
290
+ std::cout << composited_layer << " \n " ;
291
291
292
- src_layer = std::move (composited_layer);
292
+ src_layer = std::move (composited_layer);
293
+ }
293
294
}
294
295
295
296
// TODO
296
297
// - [ ] specializes
297
298
// - [ ] `class` Prim?
298
299
299
- if (all_resolved) {
300
- std::cout << " # of composition resolve iteration: " << (i + 1 ) << " \n " ;
300
+ std::cout << " # has_unresolved_references: " << src_layer.check_unresolved_references () << " \n " ;
301
+ std::cout << " # all resolved? " << !has_unresolved << " \n " ;
302
+
303
+ if (!has_unresolved) {
304
+ std::cout << " # of composition iteration to resolve fully: " << (i + 1 ) << " \n " ;
301
305
break ;
302
306
}
303
307
}
0 commit comments