OpenGL(14)GLU库API

/************************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)() );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值