From 9c97466a56fbba67561f219bf45ee85c5565ecb5 Mon Sep 17 00:00:00 2001 From: David Rose Date: Fri, 22 Apr 2005 20:46:07 +0000 Subject: [PATCH] remove empty nodes --- panda/src/pgraph/sceneGraphReducer.cxx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/panda/src/pgraph/sceneGraphReducer.cxx b/panda/src/pgraph/sceneGraphReducer.cxx index 3b934b9c93..45763757e7 100644 --- a/panda/src/pgraph/sceneGraphReducer.cxx +++ b/panda/src/pgraph/sceneGraphReducer.cxx @@ -299,6 +299,19 @@ r_flatten(PandaNode *grandparent_node, PandaNode *parent_node, num_nodes += flatten_siblings(parent_node, combine_siblings_bits); } } + + // Finally, if any of our remaining children are plain PandaNodes + // with no children, just remove them. + { + for (int i = parent_node->get_num_children() - 1; i >= 0; --i) { + PandaNode *child_node = parent_node->get_child(i); + if (child_node->is_exact_type(PandaNode::get_class_type()) && + child_node->get_num_children() == 0) { + parent_node->remove_child(child_node); + ++num_nodes; + } + } + } } return num_nodes;