@@ -261,34 +261,35 @@ LayerNodeRef Context::insertChildTransformNode(
261
261
return inst;
262
262
}
263
263
264
- LayerNodeRef Context::insertChildObjectNode (LayerNodeRef parent,
265
- anari::DataType type,
266
- size_t idx,
267
- const char *name)
264
+ LayerNodeRef Context::insertChildObjectNode (
265
+ LayerNodeRef parent, anari::DataType type, size_t idx, const char *name)
268
266
{
269
267
auto inst = parent->insert_last_child (tsd::utility::Any{type, idx});
270
268
(*inst)->name = name;
271
269
signalLayerChange ();
272
270
return inst;
273
271
}
274
272
275
- void Context::removeInstancedObject (LayerNodeRef obj)
273
+ void Context::removeInstancedObject (
274
+ LayerNodeRef obj, bool deleteReferencedObjects)
276
275
{
277
276
if (obj->isRoot ())
278
277
return ;
279
278
280
- std::vector<LayerNodeRef> objects;
281
- defaultLayer ()->traverse (obj, [&](auto &node, int level) {
282
- if (node.isLeaf ())
283
- objects.push_back (defaultLayer ()->at (node.index ()));
284
- return true ;
285
- });
279
+ if (deleteReferencedObjects) {
280
+ std::vector<LayerNodeRef> objects;
286
281
287
- for (auto &o : objects)
288
- removeObject (o->value ().value );
282
+ defaultLayer ()->traverse (obj, [&](auto &node, int level) {
283
+ if (node.isLeaf ())
284
+ objects.push_back (defaultLayer ()->at (node.index ()));
285
+ return true ;
286
+ });
289
287
290
- defaultLayer ()->erase (obj);
288
+ for (auto &o : objects)
289
+ removeObject (o->value ().value );
290
+ }
291
291
292
+ defaultLayer ()->erase (obj);
292
293
signalLayerChange ();
293
294
}
294
295
0 commit comments