//----------------------------------------------------------------------------------- void BoneMemoryManager::nodeCreated( BoneTransform &outTransform, size_t depth ) { growToDepth( depth ); BoneArrayMemoryManager& mgr = mMemoryManagers[depth]; mgr.createNewNode( outTransform ); }
//----------------------------------------------------------------------------------- void ObjectMemoryManager::objectCreated( ObjectData &outObjectData, size_t renderQueue ) { growToDepth( renderQueue ); ObjectDataArrayMemoryManager& mgr = mMemoryManagers[renderQueue]; mgr.createNewNode( outObjectData ); ++mTotalObjects; }
//----------------------------------------------------------------------------------- void BoneMemoryManager::nodeMoved( BoneTransform &inOutTransform, size_t oldDepth, size_t newDepth ) { growToDepth( newDepth ); BoneTransform tmp; mMemoryManagers[newDepth].createNewNode( tmp ); tmp.copy( inOutTransform ); BoneArrayMemoryManager &mgr = mMemoryManagers[oldDepth]; mgr.destroyNode( inOutTransform ); inOutTransform = tmp; }
//----------------------------------------------------------------------------------- void BoneMemoryManager::nodeAttached( BoneTransform &outTransform, size_t depth ) { growToDepth( depth ); BoneTransform tmp; mMemoryManagers[depth].createNewNode( tmp ); tmp.copy( outTransform ); BoneArrayMemoryManager &mgr = mMemoryManagers[0]; mgr.destroyNode( outTransform ); outTransform = tmp; }
//----------------------------------------------------------------------------------- void ObjectMemoryManager::objectMoved( ObjectData &inOutObjectData, size_t oldRenderQueue, size_t newRenderQueue ) { growToDepth( newRenderQueue ); ObjectData tmp; mMemoryManagers[newRenderQueue].createNewNode( tmp ); tmp.copy( inOutObjectData ); ObjectDataArrayMemoryManager &mgr = mMemoryManagers[oldRenderQueue]; mgr.destroyNode( inOutObjectData ); inOutObjectData = tmp; }