void DMesh::unloadImpl() { mExternSrc.reset(); mPreparedData.reset(); removeAllSubMeshes(); destroyAllAnimations(); }
//----------------------------------------------------------------------- void PCZSceneManager::clearScene(void) { destroyAllStaticGeometry(); destroyAllMovableObjects(); // Clear root node of all children getRootSceneNode()->removeAllChildren(); getRootSceneNode()->detachAllObjects(); // Delete all SceneNodes, except root that is for (SceneNodeList::iterator i = mSceneNodes.begin(); i != mSceneNodes.end(); ++i) { OGRE_DELETE i->second; } mSceneNodes.clear(); mAutoTrackingSceneNodes.clear(); // delete all the zones for (ZoneMap::iterator j = mZones.begin(); j != mZones.end(); ++j) { OGRE_DELETE j->second; } mZones.clear(); mDefaultZone = 0; // Clear animations destroyAllAnimations(); // Remove sky nodes since they've been deleted mSkyBoxNode = mSkyPlaneNode = mSkyDomeNode = 0; mSkyBoxEnabled = mSkyPlaneEnabled = mSkyDomeEnabled = false; // Clear render queue, empty completely if (mRenderQueue) mRenderQueue->clear(true); // re-initialize init(mDefaultZoneTypeName, mDefaultZoneFileName); }
/************************************************************************* Destructor *************************************************************************/ AnimationManager::~AnimationManager() { // by destroying all animations their instances also get deleted destroyAllAnimations(); // and lastly, we remove all interpolators, but we don't delete them! // it is the creator's responsibility to delete them d_interpolators.clear(); // we only destroy inbuilt interpolators for (BasicInterpolatorList::const_iterator it = d_basicInterpolators.begin(); it != d_basicInterpolators.end(); ++it) { CEGUI_DELETE_AO *it; } d_basicInterpolators.clear(); char addr_buff[32]; sprintf(addr_buff, "(%p)", static_cast<void*>(this)); Logger::getSingleton().logEvent( "CEGUI::AnimationManager singleton destroyed " + String(addr_buff)); }