void RendererThread::DrawEngines()
{
	for (size_t i = 0; i < m_engines.size(); i++)
	{
		if(!std::get<1>(m_engines[i]))
		{
			continue;
		}

		DrawEngine(std::get<0>(m_engines[i])->GetRenderTargetTexture(), m_monitors[i].GetRect());
	}
}
void LunarModule::DrawBottom()
{
    
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, texIds[0]);
    
    glBegin(GL_QUADS);
    
    // Front
    glNormal3f(0, 1, 0);
    glTexCoord2f(0, 0);
    glVertex3f(0, 0, 0);
    glTexCoord2f(0, 1);
    glVertex3f(0, -50, 0);
    glTexCoord2f(1, 1);
    glVertex3f(100, -50, 0);
    glTexCoord2f(1, 0);
    glVertex3f(100, 0, 0);
    
    // Front right lip
    glNormal3f(1, 0, 1);
    glTexCoord2f(0, 0);
    glVertex3f(100, 0, 0);
    glTexCoord2f(0, 1);
    glVertex3f(100, -50, 0);
    glTexCoord2f(1, 1);
    glVertex3f(150, -50, -50);
    glTexCoord2f(1, 0);
    glVertex3f(150, 0, -50);
    
    // Middle right
    glNormal3f(0, 0, 1);
    glTexCoord2f(0, 0);
    glVertex3f(150, 0, -50);
    glTexCoord2f(0, 1);
    glVertex3f(150, -50, -50);
    glTexCoord2f(1, 1);
    glVertex3f(150, -50, -150);
    glTexCoord2f(1, 0);
    glVertex3f(150, 0, -150);
    
    // Back right lip
    glNormal3f(1, 0, 1);
    glTexCoord2f(0, 0);
    glVertex3f(150, 0, -150);
    glTexCoord2f(0, 1);
    glVertex3f(150, -50, -150);
    glTexCoord2f(1, 1);
    glVertex3f(100, -50, -200);
    glTexCoord2f(1, 0);
    glVertex3f(100, 0, -200);
    
    // Back
    glNormal3f(0, 0, 1);
    glTexCoord2f(0, 0);
    glVertex3f(100, 0, -200);
    glTexCoord2f(0, 1);
    glVertex3f(100, -50, -200);
    glTexCoord2f(1, 1);
    glVertex3f(0, -50, -200);
    glTexCoord2f(1, 0);
    glVertex3f(0, 0, -200);
    
    // Back left lip
    glNormal3f(1, 0, 1);
    glTexCoord2f(0, 0);
    glVertex3f(0, 0, -200);
    glTexCoord2f(0, 1);
    glVertex3f(0, -50, -200);
    glTexCoord2f(1, 1);
    glVertex3f(-50, -50, -150);
    glTexCoord2f(1, 0);
    glVertex3f(-50, 0, -150);
    
    // Middle left
    glNormal3f(0, 0, 1);
    glTexCoord2f(0, 0);
    glVertex3f(-50, 0, -150);
    glTexCoord2f(0, 1);
    glVertex3f(-50, -50, -150);
    glTexCoord2f(1, 1);
    glVertex3f(-50, -50, -50);
    glTexCoord2f(1, 0);
    glVertex3f(-50, 0, -50);
    
    // Front left lip
    glNormal3f(1, 0, 1);
    glTexCoord2f(0, 0);
    glVertex3f(-50, 0, -50);
    glTexCoord2f(0, 1);
    glVertex3f(-50, -50, -50);
    glTexCoord2f(1, 1);
    glVertex3f(0, -50, 0);
    glTexCoord2f(1, 0);
    glVertex3f(0, 0, 0);
    
    // Top
    glNormal3f(0, 1, 0);
    glTexCoord2f(0, 0);
    glVertex3f(-50, 0, -50);
    glTexCoord2f(0, 1);
    glVertex3f(0, 0, 0);
    glTexCoord2f(1, 1);
    glVertex3f(0, 0, -200);
    glTexCoord2f(1, 0);
    glVertex3f(-50, 0, -150);
    
    glTexCoord2f(0, 0);
    glVertex3f(0, 0, 0);
    glTexCoord2f(0, 1);
    glVertex3f(100, 0, 0);
    glTexCoord2f(1, 1);
    glVertex3f(100, 0, -200);
    glTexCoord2f(1, 0);
    glVertex3f(0, 0, -200);
    
    glTexCoord2f(0, 0);
    glVertex3f(100, 0, 0);
    glTexCoord2f(0, 1);
    glVertex3f(150, 0, -50);
    glTexCoord2f(1, 1);
    glVertex3f(150, 0, -150);
    glTexCoord2f(1, 0);
    glVertex3f(100, -0, -200);
    
    // Bottom
    glNormal3f(-1, -1, -1);
    
    glVertex3f(-50, -50, -150);
    glVertex3f(0, -50, -200);
    glVertex3f(0, -50, 0);
    glVertex3f(-50, -50, -50);
    
    glVertex3f(0, -50, -200);
    glVertex3f(100, -50, -200);
    glVertex3f(100, -50, 0);
    glVertex3f(0, -50, 0);
    
    glTexCoord2f(0, 0);
    glVertex3f(100, -50, -200);
    glVertex3f(150, -50, -150);
    glVertex3f(150, -50, -50);
    glVertex3f(100, -50, 0);
    
    glEnd();
    
    glBindTexture(GL_TEXTURE_2D, NULL);
    glDisable(GL_TEXTURE_2D);
    
    DrawLandingGear();
    glPushMatrix();
    glTranslatef(150, 0, -50);
    glRotated(90, 0, 1, 0);
    DrawLandingGear();
    glPopMatrix();
    
    glPushMatrix();
    glTranslatef(-55, 0, -150);
    glRotatef(270, 0, 1, 0);
    DrawLandingGear();
    glPopMatrix();
    
    glPushMatrix();
    glTranslatef(100, 0, -200);
    glRotatef(-180, 0, 1, 0);
    DrawLandingGear();
    glPopMatrix();
    
    glPushMatrix();
    glTranslatef(50, -50, -100);
    DrawEngine();
    glPopMatrix();
    
}