Ejemplo n.º 1
0
	void LightManager::addLight(Light *light)
	{
		if(light)
		{
			if(light->hasParallelBeams())
			{
				parallelBeamsLights.push_back(light);
			}else
			{
				lightOctreeManager->addOctreeable(light);
			}

			onLightEvent(light, LightManager::ADD_LIGHT);
		}
	}
Ejemplo n.º 2
0
	void LightManager::removeLight(Light *const light)
	{
		if(light!=nullptr)
		{
			if(light->hasParallelBeams())
			{
				std::vector<Light *>::iterator it = std::find(parallelBeamsLights.begin(), parallelBeamsLights.end(), light);
				parallelBeamsLights.erase(it);
			}else
			{
				lightOctreeManager->removeOctreeable(light);
			}

			onLightEvent(light, LightManager::REMOVE_LIGHT);

			delete light;
		}
	}
Ejemplo n.º 3
0
	void LightManager::removeLight(Light *light)
	{
		if(light)
		{
			if(light->hasParallelBeams())
			{
				auto it = std::find(parallelBeamsLights.begin(), parallelBeamsLights.end(), light);
				parallelBeamsLights.erase(it);
			}else
			{
				lightOctreeManager->removeOctreeable(light);
			}

			onLightEvent(light, LightManager::REMOVE_LIGHT);

			delete light;
		}
	}
Ejemplo n.º 4
0
	void LightManager::addLight(Light *const light)
	{
		if(!isInitialized)
		{
			throw std::runtime_error("Light cannot be added to the light manager because it's not initialized.");
		}

		if(light!=nullptr)
		{
			if(light->hasParallelBeams())
			{
				parallelBeamsLights.push_back(light);
			}else
			{
				lightOctreeManager->addOctreeable(light);
			}

			onLightEvent(light, LightManager::ADD_LIGHT);
		}
	}