#include "libs.h" #include "star.h" #include "l3d.h" Star::Star(StarSystem::SBody::SubType subtype): Body() { m_subtype = subtype; m_radius = 6378135.0; m_pos = vector3d(0,0,0); } vector3d Star::GetPosition(void) { return m_pos; } void Star::SetPosition(vector3d p) { m_pos = p; } void Star::TransformToModelCoords(const Frame* camFrame) { vector3d fpos = GetPositionRelTo(camFrame); glTranslatef(m_pos[0]+fpos.x, m_pos[1]+fpos.y, m_pos[2]+fpos.z); } void Star::Render(const Frame* a_camFrame) { glDisable(GL_LIGHTING); glDisable(GL_DEPTH_TEST); glPushMatrix(); /* TODO duplicates code from Planet.cpp, not good. */ double rad = m_radius; vector3d fpos = GetPositionRelTo(a_camFrame); double len = fpos.Length(); while(len > 1000.0f) { rad *= 0.25; fpos = 0.25*fpos; len *= 0.25; } glTranslatef(fpos.x, fpos.y, fpos.z); //TransformToModelCoords(a_camFrame); glColor3fv(StarSystem::starColors[m_subtype]); gluSphere(L3D::gluQuadric, rad, 100, 100); glPopMatrix(); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); }