Ejemplo n.º 1
0
//-----------------------------------------------------------------------------------------------
void LightSystem::Update(float deltaSeconds, float movementRadius, float movementSpeed)
{
	UNUSED(deltaSeconds);

	Vector3f initialPosition;
	Vector3f lightRGB;
	Color color;

	float currentElapsedTime = (float)Time::GetCurrentTimeInSeconds();

	for(int i = 0; i < m_numberOfActivatedLights; ++i)
	{
		initialPosition = m_lights[i].initialPosition;

		if(m_lights[i].movement == FIGURE_EIGHT)
		{
			m_lights[i].light.m_position = Vector3f
				(
				initialPosition.x + movementRadius * sin(i + movementSpeed * currentElapsedTime),
				initialPosition.y + movementRadius * sin(i + 2.f * movementSpeed * currentElapsedTime),
				initialPosition.z
				);
		}
		else
		{
			m_lights[i].light.m_position = initialPosition;
		}

		lightRGB.x = m_lights[i].light.m_colorAndBrightness.x;
		lightRGB.y = m_lights[i].light.m_colorAndBrightness.y;
		lightRGB.z = m_lights[i].light.m_colorAndBrightness.z;
	
		color.FromVector3fNormalizedAndFullyOpaque(lightRGB);

		initialPosition = m_lights[i].light.m_position;

		if(!m_lights[i].light.m_ignorePosition)
			OpenGLRenderer::RenderDebugPoint(initialPosition, color);
	}
}