|
|
@ -73,6 +73,15 @@ class ObjectCache : public osg::Referenced
|
|
|
|
/** call node->accept(nv); for all nodes in the objectCache. */
|
|
|
|
/** call node->accept(nv); for all nodes in the objectCache. */
|
|
|
|
void accept(osg::NodeVisitor& nv);
|
|
|
|
void accept(osg::NodeVisitor& nv);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** call operator()(osg::Object*) for each object in the cache. */
|
|
|
|
|
|
|
|
template <class Functor>
|
|
|
|
|
|
|
|
void call(Functor& f)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_objectCacheMutex);
|
|
|
|
|
|
|
|
for (ObjectCacheMap::iterator it = _objectCache.begin(); it != _objectCache.end(); ++it)
|
|
|
|
|
|
|
|
f(it->second.first.get());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/** Get the number of objects in the cache. */
|
|
|
|
/** Get the number of objects in the cache. */
|
|
|
|
unsigned int getCacheSize() const;
|
|
|
|
unsigned int getCacheSize() const;
|
|
|
|
|
|
|
|
|
|
|
|