/************************http://blog.csdn.net/sunboyiris*************************************/
//建立一个二次曲面对象
GLUquadric* APIENTRY gluNewQuadric (void);
//gluDeleteTess 删除一个镶嵌对象
void APIENTRY gluDeleteQuadric (
GLUquadric *state);
//定义二次曲面所用的法向的种类
void APIENTRY gluQuadricNormals (
GLUquadric *quadObject,
GLenum normals);
//定义是否带二次其面做纹理帖图
void APIENTRY gluQuadricTexture (
GLUquadric *quadObject,
GLboolean textureCoords);
//定义二次曲面内部或外部方向
void APIENTRY gluQuadricOrientation (
GLUquadric *quadObject,
GLenum orientation);
//为二次曲面设定合适的绘制风格
void APIENTRY gluQuadricDrawStyle (
GLUquadric *quadObject,
GLenum drawStyle);
//绘制一个圆柱
void APIENTRY gluCylinder (
GLUquadric *qobj,
GLdouble baseRadius,
GLdouble topRadius,
GLdouble height,
GLint slices,
GLint stacks);
//绘制一个盘子
void APIENTRY gluDisk (
GLUquadric *qobj,
GLdouble innerRadius,
GLdouble outerRadius,
GLint slices,
GLint loops);
//绘制一个盘子的弧
void APIENTRY gluPartialDisk (
GLUquadric *qobj,
GLdouble innerRadius,
GLdouble outerRadius,
GLint slices,
GLint loops,
GLdouble startAngle,
GLdouble sweepAngle);
//绘制一个球体
void APIENTRY gluSphere (
GLUquadric *qobj,
GLdouble radius,
GLint slices,
GLint stacks);
//为二次曲面对象定义一个回调
void APIENTRY gluQuadricCallback (
GLUquadric *qobj,
GLenum which,
void (CALLBACK* fn)());
//建立一个镶嵌对象
GLUtesselator* APIENTRY gluNewTess(
void );
// 删除一个镶嵌对象
void APIENTRY gluDeleteTess(
GLUtesselator *tess );
//设置镶嵌对象的属性
void APIENTRY gluTessBeginPolygon(
GLUtesselator *tess,
void *polygon_data );
//划定一个边界描述
void APIENTRY gluTessBeginContour(
GLUtesselator *tess );
//定义在一个多边形上的顶点
void APIENTRY gluTessVertex(
GLUtesselator *tess,
GLdouble coords[3],
void *data );
//划定一个边界描述
void APIENTRY gluTessEndContour(
GLUtesselator *tess );
//划定一个多边形描述
void APIENTRY gluTessEndPolygon(
GLUtesselator *tess );
//设置镶嵌对象的属性
void APIENTRY gluTessProperty(
GLUtesselator *tess,
GLenum which,
GLdouble value );
//为一个多边行形定义法向
void APIENTRY gluTessNormal(
GLUtesselator *tess,
GLdouble x,
GLdouble y,
GLdouble z );
// 为镶嵌对象定义一个回调
void APIENTRY gluTessCallback(
GLUtesselator *tess,
GLenum which,
void (CALLBACK *fn)());
//设置镶嵌对象的属性
void APIENTRY gluGetTessProperty(
GLUtesselator *tess,
GLenum which,
GLdouble *value );
//创建一个NURBS对象
GLUnurbs* APIENTRY gluNewNurbsRenderer (void);
//删除一个NURBS对象
void APIENTRY gluDeleteNurbsRenderer (
GLUnurbs *nobj);
//定义一个NURBS曲线
void APIENTRY gluBeginSurface (
GLUnurbs *nobj);
//定义一条不一至的有理的NURBS曲线
void APIENTRY gluBeginCurve (
GLUnurbs *nobj);
//定义一条不一至的有理的NURBS曲线
void APIENTRY gluEndCurve (
GLUnurbs *nobj);
//定义一个NURBS曲线
void APIENTRY gluEndSurface (
GLUnurbs *nobj);
// 定义一个NURBS整理循环
void APIENTRY gluBeginTrim (
GLUnurbs *nobj);
// 定义一个NURBS整理循环
void APIENTRY gluEndTrim (
GLUnurbs *nobj);
//描述一个分段线性NURBS修剪曲线
void APIENTRY gluPwlCurve (
GLUnurbs *nobj,
GLint count,
GLfloat *array,
GLint stride,
GLenum type);
//设定一个NuRBS曲线的形状
void APIENTRY gluNurbsCurve (
GLUnurbs *nobj,
GLint nknots,
GLfloat *knot,
GLint stride,
GLfloat *ctlarray,
GLint order,
GLenum type);
//定义一个NURBS表面的形状
void APIENTRY
gluNurbsSurface(
GLUnurbs *nobj,
GLint sknot_count,
float *sknot,
GLint tknot_count,
GLfloat *tknot,
GLint s_stride,
GLint t_stride,
GLfloat *ctlarray,
GLint sorder,
GLint torder,
GLenum type);
//加载NUMRBS例子和精选矩阵
void APIENTRY
gluLoadSamplingMatrices (
GLUnurbs *nobj,
const GLfloat modelMatrix[16],
const GLfloat projMatrix[16],
const GLint viewport[4] );
//设定一个NURBS属性
void APIENTRY
gluNurbsProperty (
GLUnurbs *nobj,
GLenum property,
GLfloat value );
//设定一个NURBS属性
void APIENTRY
gluGetNurbsProperty (
GLUnurbs *nobj,
GLenum property,
GLfloat *value );
//为NURBS对象设定一个回调
void APIENTRY
gluNurbsCallback (
GLUnurbs *nobj,
GLenum which,
void (CALLBACK* fn)() );
OpenGL(14)GLU库API
最新推荐文章于 2021-04-13 19:30:50 发布