Exemple #1
0
bool SceneManager::deleteEntities(OctreeNode* node)
{
	for(int i = 0; i < MAX_ENTITES; i++)
	{
		if(i < 8)
		{
			if(node->mChildNodes[i])
			{
				deleteEntities(node->mChildNodes[i]);
			}
		}

		if(node->mNodeContents[i])
		{
			if(mPhysicsWorld)
			{
				mPhysicsWorld->removeRigidBody(node->mNodeContents[i]->getRigidBody());
			}

			delete node->mNodeContents[i];
			node->mNodeContents[i] = 0;
		}
	}

	node->mCurrentEntities = 0;

	return true;
}
Exemple #2
0
	void CObjectViewer::release()
	{
		//H_AUTO2
		nldebug("CObjectViewer::release");

		Modules::config().dropCallback("BackgroundColor");
		Modules::config().dropCallback("GraphicsDriver");

		_Driver->delete3dMouseListener(_MouseListener);

		// delete all entities
		deleteEntities();

		_Scene->deletePlayListManager(_PlayListManager);

		// delete the scene
		_Driver->deleteScene(_Scene);

		// delete the light
		delete _Light;

		// release driver
		nlassert(_Driver);
		_Driver->release();
		delete _Driver;
		_Driver = NULL;
	}
Exemple #3
0
	void CObjectViewer::resetScene()
	{
		deleteEntities();

		// Reset camera.
		//..

		// to load files with the same name but located in different directories
		//CPath::clearMap();

		// load and set search paths from config
		//Modules::config().configSearchPaths();

		_CurrentInstance = "";

		nlinfo("Scene cleared");
	}
Exemple #4
0
SceneManager::~SceneManager()
{
	if(mPhysicsWorld)
	{
		delete mPhysicsWorld;
		mPhysicsWorld = 0;
	}

	if(mCollisionConfig)
	{
		delete mCollisionConfig;
		mCollisionConfig = 0;
	}

	if(mBroadphaseAlgorithm)
	{
		delete mBroadphaseAlgorithm;
		mBroadphaseAlgorithm = 0;
	}
	
	if(mConstraintSolver)
	{
		delete mConstraintSolver;
		mConstraintSolver = 0;
	}

	if(mCollisionDispatcher)
	{
		delete mCollisionDispatcher;
		mCollisionDispatcher = 0;
	}

	if(mSceneTree)
	{
		deleteEntities(mSceneTree);
		deleteTree(mSceneTree);

		delete mSceneTree;
		mSceneTree = 0;
	}
}