*/
  public void map1d (int target, double u1, double u2, int stride, int order,
                     double [] points) {

    int k = 0;

    switch (target) {
    case MAP1_INDEX:            // fall through
    case MAP1_TEXTURE_COORD_1: k = 1; break;
    case MAP1_TEXTURE_COORD_2: k = 2; break;
    case MAP1_NORMAL:           // fall through
    case MAP1_TEXTURE_COORD_3:  // fall through
    case MAP1_VERTEX_3: k = 3; break;
    case MAP1_COLOR_4:          // fall through
    case MAP1_TEXTURE_COORD_4:  // fall through
    case MAP1_VERTEX_4: k = 4; break;
    }


    int n = order * k * 8;

    byte[] data = new byte [n];
    for (int i=0; i<order; i++) {
      for (int j=0; j<k; j++) {
        write_double (data, i * 8, points [i*stride + j]);
      }
    }

    RequestOutputStream o = display.out;
    synchronized (o) {
      large_render_request.begin(o, 143, 28, n);
      large_render_request.write_float64 (u1);
      large_render_request.write_float64 (u2);
      large_render_request.write_int32 (target);
      large_render_request.write_int32 (order);
      large_render_request.begin_large_parameter ();
      for (int i = 0; i < data.length; i++)
        large_render_request.write_int8 (data [i]);
      large_render_request.write_pad (RequestOutputStream.pad(data.length));
    }
  }