void Scene::updateBodyDetails(Camera *cam) { for (unsigned int i = 0; i < m_bodies.size(); i++) { Planet *body = &m_bodies.at(i); // determine what level the planet should be rendered at Vector3 eye_to_planet = body->getCenter() - cam->getEye(); float dist = eye_to_planet.length(); dist -= body->getRadius(); if (dist >= 0 && dist < .9) { body->setDetail(VERY_HIGH); } else if (dist >= .9 && dist < 1.5) { body->setDetail(HIGH); } else if (dist >= 1.5 && dist < 2.5) { body->setDetail(MEDIUM); } else if (dist >= 2.5 && dist < 4) { body->setDetail(LOW); } else { body->setDetail(VERY_LOW); } } }