gluBeginSurface(theSurface);
gluNurbsSurface(theSurface, 8, knots, 8, knots, 4 * 3, 3, &controlPoints[0][0][0], 4, 4, GL_MAP2_VERTEX_3);
gluBeginTrim(theSurface);
gluNurbsCurve(theSurface, 8, curveKnots, 2, &edgePt_1[0][0], 4, GLU_MAP1_TRIM_2);
gluNurbsCurve(theSurface, 8, curveKnots, 2, &edgePt_2[0][0], 4, GLU_MAP1_TRIM_2);
gluEndTrim(theSurface);
gluBeginTrim(theSurface);
gluNurbsCurve(theSurface, 8, curveKnots, 2, &curvePt_1[0][0], 4, GLU_MAP1_TRIM_2);
gluNurbsCurve(theSurface, 8, curveKnots, 2, &curvePt_2[0][0], 4, GLU_MAP1_TRIM_2);
gluEndTrim(theSurface);
gluEndSurface(theSurface);