+template<typename Functor>
+class BrushSelectedVisitor : public SelectionSystem::Visitor
+{
+ const Functor& m_functor;
+public:
+ BrushSelectedVisitor(const Functor& functor) : m_functor(functor)
+ {
+ }
+ void visit(scene::Instance& instance) const
+ {
+ if(Node_isBrush(instance.path().top()))
+ {
+ m_functor(*instance.path().top());
+ }
+ }
+};
+
+template<typename Functor>
+inline const Functor& Scene_forEachSelectedBrush(const Functor& functor)
+{
+ GlobalSelectionSystem().foreachSelected(BrushSelectedVisitor<Functor>(functor));
+ return functor;
+}
+
+void DEntity_loadBrush(DEntity& entity, scene::Node& brush)
+{
+ DBrush* loadBrush = entity.NewBrush(entity.brushList.size());
+ loadBrush->LoadFromBrush(brush, true);
+}
+typedef ReferenceCaller1<DEntity, scene::Node&, DEntity_loadBrush> DEntityLoadBrushCaller;
+