Esempio n. 1
0
void LodSystem::UpdateEntityAfterLoad(SceneNode * entity)
{
	LodComponent * lod = static_cast<LodComponent*>(entity->GetComponent(Component::LOD_COMPONENT));
	for (Vector<LodComponent::LodData>::iterator it = lod->lodLayers.begin(); it != lod->lodLayers.end(); ++it)
	{
		LodComponent::LodData & ld = *it;
		size_t size = ld.indexes.size();
		for (size_t idx = 0; idx < size; ++idx)
		{
			SceneNode * childEntity = entity->GetChild(ld.indexes[idx]);
			ld.nodes.push_back(childEntity);
			{
				childEntity->SetLodVisible(false);
			}
		}
	}

	lod->currentLod = NULL;
	if(lod->lodLayers.size() > 0)
	{
		lod->SetCurrentLod(&(*lod->lodLayers.rbegin()));
	}
}