全部文本 #43482 原始 编辑

Miscellany

公开 text v1 · 不可变
·已发布 2006-02-28 01:02 UTC
渲染后的文本正文
void CSeebreezeView::drawSensorSurface(void)
{
#define MAX_SURFACE_X 3.25
#define MAX_SURFACE_Y 11.75
  bool first_row = 1, last_row = 0;

  for (vector<Sensor>::iterator cur_row = g_sensor_data.begin(); 
        cur_row != g_sensor_data.end(); cur_row += 10)
  {
  	if (cur_row + 10 == g_sensor_data.end())
	  	break;
    else if (cur_row + 20 == g_sensor_data.end())
      last_row = 1;

    for (int i = 0; i < 9; i++)
    {
      glBegin(GL_QUADS);

      setSensorColor((cur_row + i));
      glVertex3d(i > 0 ? (cur_row + i)->m_x : 0, first_row ? 0 : (cur_row + i)->m_y, 0);

      setSensorColor(cur_row + i + 1);
      glVertex3d(i < 8 ? (cur_row + i + 1)->m_x : MAX_SURFACE_X, first_row ? 0 : (cur_row + i + 1)->m_y, 0);

      setSensorColor(cur_row + i + 11);
      glVertex3d(i < 8 ? (cur_row + i + 11)->m_x : MAX_SURFACE_X, last_row ? MAX_SURFACE_Y : (cur_row + i + 11)->m_y, 0);

      setSensorColor(cur_row + i + 10);
      glVertex3d(i > 0 ? (cur_row + i + 10)->m_x : 0, last_row ? MAX_SURFACE_Y : (cur_row + i + 10)->m_y, 0);

      glEnd();
    }
    first_row = 0;
  }

#undef MAX_SURFACE_X
#undef MAX_SURFACE_Y
}