changed doom3 entity-create to add model key for brush-entities

git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@75 8a3a26a2-13c4-0310-b231-cf6edde360e5
This commit is contained in:
spog
2006-06-03 12:41:12 +00:00
parent ecd25e066c
commit 70da7cd260
3 changed files with 43 additions and 6 deletions

View File

@@ -355,5 +355,42 @@ public:
}
};
template<typename Type>
class ReferenceSet
{
typedef UniqueSet<Type*> Values;
Values m_values;
public:
void attach(Type& t)
{
m_values.insert(&t);
}
void detach(Type& t)
{
m_values.erase(&t);
}
template<typename Functor>
void forEach(const Functor& functor)
{
for(Values::iterator i = m_values.begin(); i != m_values.end(); ++i)
{
functor(*(*i));
}
}
};
class TraversableObserverRelay : public ReferenceSet<scene::Traversable::Observer>, public scene::Traversable::Observer
{
public:
void insert(scene::Node& node)
{
forEach(TraversableObserverInsert(node));
}
void erase(scene::Node& node)
{
forEach(TraversableObserverErase(node));
}
};
#endif