/**
  * Makes a NURBS surface.
  *
  * @param r GLUnurbs object holding the surface
  * @param sknot_count number of knots in s direction
  * @param sknot knots in s direction
  * @param tknot_count number of knots in t direction
  * @param tknot knots in t direction
  * @param s_stride number of control points coordinates in s direction
  * @param t_stride number of control points coordinates in t direction
  * @param ctlarray control points
  * @param sorder order of surface in s direction
  * @param torder order of surface in t direction
  * @param type surface type
  */
 public final void gluNurbsSurface(
     GLUnurbs r,
     int sknot_count,
     float[] sknot,
     int tknot_count,
     float[] tknot,
     int s_stride,
     int t_stride,
     float[] ctlarray,
     int sorder,
     int torder,
     int type) {
   // DONE
   ((GLUgl2nurbsImpl) r)
       .nurbssurface(
           sknot_count,
           sknot,
           tknot_count,
           tknot,
           s_stride,
           t_stride,
           ctlarray,
           sorder,
           torder,
           type);
 }
 /**
  * Make a NURBS curve.
  *
  * @param r GLUnurbs object holding the curve
  * @param nknots number of knots
  * @param knot knot vector
  * @param stride number of control point coordinates
  * @param ctlarray control points
  * @param order order of the curve
  * @param type curve type
  */
 public final void gluNurbsCurve(
     GLUnurbs r, int nknots, float[] knot, int stride, float[] ctlarray, int order, int type) {
   int realType;
   switch (type) {
       // TODO GLU_MAP1_TRIM_2 etc.
     default:
       realType = type;
       break;
   }
   ((GLUgl2nurbsImpl) r).nurbscurve(nknots, knot, stride, ctlarray, order, realType);
 }
 /**
  * Ends a curve definition.
  *
  * @param r GLUnurbs object holding the curve
  */
 public final void gluEndCurve(GLUnurbs r) {
   // DONE
   ((GLUgl2nurbsImpl) r).endcurve();
 }
 /**
  * Ends a surface.
  *
  * @param r GLUnurbs object holding surface
  */
 public final void gluEndSurface(GLUnurbs r) {
   // DONE
   ((GLUgl2nurbsImpl) r).endsurface();
 }
 /**
  * Begins a surface definition.
  *
  * @param r GLUnurbs object to specify surface to
  */
 public final void gluBeginSurface(GLUnurbs r) {
   // DONE
   ((GLUgl2nurbsImpl) r).bgnsurface();
 }
 /**
  * Begins a curve definition.
  *
  * @param r GLUnurbs object to specify curve to
  */
 public final void gluBeginCurve(GLUnurbs r) {
   // DONE
   ((GLUgl2nurbsImpl) r).bgncurve();
 }