bool KX_WorldIpoController::Update(double currentTime)
{
	if (m_modified) {
		T_InterpolatorList::iterator i;
		for (i = m_interpolators.begin(); !(i == m_interpolators.end()); ++i) {
			(*i)->Execute(m_ipotime);
		}

		KX_WorldInfo *world = KX_GetActiveScene()->GetWorldInfo();

		if (m_modify_mist_start) {
			world->setMistStart(m_mist_start);
		}

		if (m_modify_mist_dist) {
			world->setMistDistance(m_mist_dist);
		}

		if (m_modify_mist_intensity) {
			world->setMistIntensity(m_mist_intensity);
		}

		if (m_modify_horizon_color) {
			world->setBackColor(m_hori_rgb[0], m_hori_rgb[1], m_hori_rgb[2]);
			world->setMistColor(m_hori_rgb[0], m_hori_rgb[1], m_hori_rgb[2]);
		}

		if (m_modify_ambient_color) {
			world->setAmbientColor(m_ambi_rgb[0], m_ambi_rgb[1], m_ambi_rgb[2]);
		}

		m_modified = false;
	}
	return false;
}
Exemplo n.º 2
0
bool KX_WorldIpoController::Update(double currentTime)
{
	if (m_modified)
	{
		T_InterpolatorList::iterator i;
		for (i = m_interpolators.begin(); !(i == m_interpolators.end()); ++i) {
			(*i)->Execute(m_ipotime);//currentTime);
		}

		/* TODO, this will crash! */
		KX_WorldInfo *world = NULL;

		if (m_modify_mist_start) {
			world->setMistStart(m_mist_start);
		}

		if (m_modify_mist_color) {
			world->setMistColorRed(m_mist_rgb[0]);
			world->setMistColorGreen(m_mist_rgb[1]);
			world->setMistColorBlue(m_mist_rgb[2]);
		}

		if (m_modify_mist_dist) {
			world->setMistDistance(m_mist_dist);
		}

		m_modified=false;
	}
	return false;
}