std::unique_ptr< ObjectCache< ElementType, KeyType > > | castor3d::makeObjectCache (Engine &engine, Scene &scene, SceneNodeSPtr rootNode, SceneNodeSPtr rootCameraNode, SceneNodeSPtr rootObjectNode, typename ObjectCacheTraits< ElementType, KeyType >::Producer &&produce, ElementInitialiser< ElementType > &&initialise=[](std::shared_ptr< ElementType >){}, ElementCleaner< ElementType > &&clean=[](std::shared_ptr< ElementType >){}, typename ObjectCacheTraits< ElementType, KeyType >::Merger &&merge=[](ObjectCacheBase< ElementType, KeyType > const &, castor::Collection< ElementType, KeyType > &, std::shared_ptr< ElementType >, SceneNodeSPtr, SceneNodeSPtr){}, ElementAttacher< ElementType > &&attach=[](std::shared_ptr< ElementType >, SceneNode &, SceneNodeSPtr, SceneNodeSPtr, SceneNodeSPtr){}, ElementDetacher< ElementType > &&detach=[](std::shared_ptr< ElementType >){}) |