void updateLights() { for(LightList::iterator light = Lights.begin(); light != Lights.end(); light++) { if(light->on) { if(fabsf(light->orient.Yaw += (kPi/180.0f) * light->origin.Yaw ) >= k2Pi) light->orient.Yaw -= k2Pi; if(fabsf(light->orient.Pitch += (kPi/180.0f) * light->origin.Pitch) >= k2Pi) light->orient.Pitch -= k2Pi; if(fabsf(light->orient.Roll += (kPi/180.0f) * light->origin.Roll ) >= k2Pi) light->orient.Roll -= k2Pi; } } }
//------------------------------------------------------------------------------ void SegmentedDynamicLightManager::regenerateActiveLightList(const LightList& i_LightList) { //add the buffers to the segmented lists LightList::const_iterator itLight = i_LightList.begin(), itLightEnd = i_LightList.end(); for(;itLight != itLightEnd ; ++itLight) { const Light* pLight = (*itLight); Light::LightTypes type = pLight->getType(); if (((type == Light::LT_SPOTLIGHT) || (type == Light::LT_POINT)) && (pLight->getAttenuationRange() > 0)) { MapLightData::iterator it = mActiveLights.insert( MapLightData::value_type(pLight,LightData())).first; LightData& lightData = it->second; calculateLightBounds(pLight, lightData); } } }