BSP::~BSP() { while( _renderings.size() ) { Rendering* rendering = *_renderings.begin(); remove( rendering ); rendering->release(); } while( _particleSystems.size() ) { ParticleSystem* pSys = *_particleSystems.begin(); remove( pSys ); pSys->release(); } while( _clumps.size() ) { Clump* clump = *_clumps.begin(); remove( clump ); clump->release(); } while( _lights.size() ) { Light* light = *_lights.begin(); remove( light ); light->release(); } delete _root; for( int i=0; i<_numShaders; i++ ) _shaders[i]->release(); delete _shaders; delete _shadowVolume; }