Skip to content

Commit

Permalink
cleanup nodes/edges when removing layer
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredstrader committed Feb 8, 2025
1 parent 892e10c commit 0fe0eb0
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion src/dynamic_scene_graph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,12 @@ const Layer& DynamicSceneGraph::addLayer(const std::string& name,

void DynamicSceneGraph::removeLayer(LayerId layer, PartitionId partition) {
if (!partition) {
auto it = layers_.find(layer);
if (it != layers_.end()) {
while (!it->second->nodes_.empty()) {
removeNode(it->second->nodes_.begin()->first);
}
}
layers_.erase(layer);
}

Expand All @@ -208,7 +214,14 @@ void DynamicSceneGraph::removeLayer(LayerId layer, PartitionId partition) {
return;
}

iter->second.erase(partition);
auto part_iter = iter->second.find(partition);
if (part_iter != iter->second.end()) {
while (!part_iter->second->nodes_.empty()) {
removeNode(part_iter->second->nodes_.begin()->first);
}
iter->second.erase(part_iter);
}

if (iter->second.empty()) {
layer_partitions_.erase(iter);
}
Expand Down

0 comments on commit 0fe0eb0

Please sign in to comment.