+ NodeP reinsert(InsertableP entity, NodeP node)
+ {
+ ASSERT(entity && "null entity passed");
+ ASSERT(node.valid() && "invalid node passed");
+
+ typename std::list<InsertableP>::iterator it;
+ it = std::find(node->objects.begin(), node->objects.end(), entity);
+
+ if (it != node->objects.end())
+ {
+ node->objects.erase(it);
+ }
+
+ return insert(entity);
+ }
+
+ void draw(Scalar alpha) const
+ {
+ draw(alpha, tree_.root());
+ }
+
+ void drawIfVisible(Scalar alpha, const Frustum& frustum) const
+ {
+ drawIfVisible(alpha, frustum, tree_.root());
+ }
+};