Пример #1
0
static void
RenderEval(void)
{

  if (colorType) {
    glEnable(GL_MAP1_COLOR_4);
    glEnable(GL_MAP2_COLOR_4);
  } else {
    glDisable(GL_MAP1_COLOR_4);
    glDisable(GL_MAP2_COLOR_4);
  }

  if (textureType) {
    glEnable(GL_TEXTURE_2D);
    glEnable(GL_MAP2_TEXTURE_COORD_2);
  } else {
    glDisable(GL_TEXTURE_2D);
    glDisable(GL_MAP2_TEXTURE_COORD_2);
  }

  if (polygonFilled) {
    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
  } else {
    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
  }

  glShadeModel(GL_SMOOTH);

  switch (mapType) {
  case EVAL:
    switch (arrayType) {
    case ONE_D:
      glDisable(GL_MAP2_VERTEX_4);
      glEnable(GL_MAP1_VERTEX_4);
      DrawPoints1();
      DrawMapEval1(0.1 / VORDER);
      break;
    case TWO_D:
      glDisable(GL_MAP1_VERTEX_4);
      glEnable(GL_MAP2_VERTEX_4);
      DrawPoints2();
      DrawMapEval2(0.1 / VMAJOR_ORDER, 0.1 / VMINOR_ORDER);
      break;
    }
    break;
  case MESH:
    switch (arrayType) {
    case ONE_D:
      DrawPoints1();
      glDisable(GL_MAP2_VERTEX_4);
      glEnable(GL_MAP1_VERTEX_4);
      glColor3f(0.0, 0.0, 1.0);
      glMapGrid1d(40, 0.0, 1.0);
      if (mapPoint) {
        glPointSize(2);
        glEvalMesh1(GL_POINT, 0, 40);
      } else {
        glEvalMesh1(GL_LINE, 0, 40);
      }
      break;
    case TWO_D:
      DrawPoints2();
      glDisable(GL_MAP1_VERTEX_4);
      glEnable(GL_MAP2_VERTEX_4);
      glColor3f(0.0, 0.0, 1.0);
      glMapGrid2d(20, 0.0, 1.0, 20, 0.0, 1.0);
      if (mapPoint) {
        glPointSize(2);
        glEvalMesh2(GL_POINT, 0, 20, 0, 20);
      } else if (polygonFilled) {
        glEvalMesh2(GL_FILL, 0, 20, 0, 20);
      } else {
        glEvalMesh2(GL_LINE, 0, 20, 0, 20);
      }
      break;
    }
    break;
  }
}
Пример #2
0
static void
RenderEval(void)
{

  if (colorType) {
    glEnable(GL_MAP1_COLOR_4);
    glEnable(GL_MAP2_COLOR_4);
  } else {
    glDisable(GL_MAP1_COLOR_4);
    glDisable(GL_MAP2_COLOR_4);
  }

  if (textureType) {
    glEnable(GL_TEXTURE_2D);
    glEnable(GL_MAP2_TEXTURE_COORD_2);
  } else {
    glDisable(GL_TEXTURE_2D);
    glDisable(GL_MAP2_TEXTURE_COORD_2);
  }

  if (polygonFilled) {
    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
  } else {
    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
  }

  glShadeModel(GL_SMOOTH);

  switch (mapType) {
  case EVAL:
    switch (arrayType) {
    case ONE_D:
      glDisable(GL_MAP2_VERTEX_4);
      glEnable(GL_MAP1_VERTEX_4);
      DrawPoints1();
      DrawMapEval1(0.1 / VORDER);
      break;
    case TWO_D:
      glDisable(GL_MAP1_VERTEX_4);
      glEnable(GL_MAP2_VERTEX_4);
      DrawPoints2();
      DrawMapEval2(0.1 / VMAJOR_ORDER, 0.1 / VMINOR_ORDER);
      break;
    }
    break;
  case MESH:
    switch (arrayType) {
    case ONE_D:
      DrawPoints1();
      glDisable(GL_MAP2_VERTEX_4);
      glEnable(GL_MAP1_VERTEX_4);
      glColor3f(0.0, 0.0, 1.0);
      glMapGrid1d(40, 0.0, 1.0);
      if (mapPoint) {
        glPointSize(2);
        glEvalMesh1(GL_POINT, 0, 40);
      } else {
        glEvalMesh1(GL_LINE, 0, 40);
      }
      break;
    case TWO_D:
      DrawPoints2();
      glDisable(GL_MAP1_VERTEX_4);
      glEnable(GL_MAP2_VERTEX_4);
      glColor3f(0.0, 0.0, 1.0);
      glMapGrid2d(20, 0.0, 1.0, 20, 0.0, 1.0);
      if (mapPoint) {
        glPointSize(2);
        glEvalMesh2(GL_POINT, 0, 20, 0, 20);
      } else if (polygonFilled) {
        glEvalMesh2(GL_FILL, 0, 20, 0, 20);
      } else {
        glEvalMesh2(GL_LINE, 0, 20, 0, 20);
      }
      break;
    default:;
      /* Mesa makes GLenum be a C "enum" and gcc will warn if
         all the cases of an enum are not tested in a switch
         statement.  Add default case to supress the error. */
    }
    break;
  }
}