javax.media.opengl.glu

Class GLU


public class GLU
extends Object

Provides access to the OpenGL Utility Library (GLU). This library provides standard methods for setting up view volumes, building mipmaps and performing other common operations. The GLU NURBS routines are not currently exposed.

Notes from the Reference Implementation for this class: Thanks to the contributions of many individuals, this class is a pure Java port of SGI's original C sources. All of the projection, mipmap, scaling, and tessellation routines that are exposed are compatible with the GLU 1.3 specification. The GLU NURBS routines are not currently exposed.

Field Summary

static int
GLU_BEGIN
static int
GLU_CCW
static int
GLU_CW
static int
GLU_EDGE_FLAG
static int
GLU_END
static int
GLU_ERROR
static int
GLU_EXTENSIONS
static int
GLU_EXTERIOR
static int
GLU_FALSE
static int
GLU_FILL
static int
GLU_FLAT
static int
GLU_INSIDE
static int
GLU_INTERIOR
static int
GLU_INVALID_ENUM
static int
GLU_INVALID_OPERATION
static int
GLU_INVALID_VALUE
static int
GLU_LINE
static int
GLU_NONE
static int
GLU_OUTSIDE
static int
GLU_OUT_OF_MEMORY
static int
GLU_POINT
static int
GLU_SILHOUETTE
static int
GLU_SMOOTH
static int
GLU_TESS_BEGIN
static int
GLU_TESS_BEGIN_DATA
static int
GLU_TESS_BOUNDARY_ONLY
static int
GLU_TESS_COMBINE
static int
GLU_TESS_COMBINE_DATA
static int
GLU_TESS_COORD_TOO_LARGE
static int
GLU_TESS_EDGE_FLAG
static int
GLU_TESS_EDGE_FLAG_DATA
static int
GLU_TESS_END
static int
GLU_TESS_END_DATA
static int
GLU_TESS_ERROR
static int
GLU_TESS_ERROR1
static int
GLU_TESS_ERROR2
static int
GLU_TESS_ERROR3
static int
GLU_TESS_ERROR4
static int
GLU_TESS_ERROR5
static int
GLU_TESS_ERROR6
static int
GLU_TESS_ERROR7
static int
GLU_TESS_ERROR8
static int
GLU_TESS_ERROR_DATA
static double
GLU_TESS_MAX_COORD
static int
GLU_TESS_MISSING_BEGIN_CONTOUR
static int
GLU_TESS_MISSING_BEGIN_POLYGON
static int
GLU_TESS_MISSING_END_CONTOUR
static int
GLU_TESS_MISSING_END_POLYGON
static int
GLU_TESS_NEED_COMBINE_CALLBACK
static int
GLU_TESS_TOLERANCE
static int
GLU_TESS_VERTEX
static int
GLU_TESS_VERTEX_DATA
static int
GLU_TESS_WINDING_ABS_GEQ_TWO
static int
GLU_TESS_WINDING_NEGATIVE
static int
GLU_TESS_WINDING_NONZERO
static int
GLU_TESS_WINDING_ODD
static int
GLU_TESS_WINDING_POSITIVE
static int
GLU_TESS_WINDING_RULE
static int
GLU_TRUE
static int
GLU_UNKNOWN
static int
GLU_VERSION
static int
GLU_VERTEX
static String
extensionString
static String
versionString

Constructor Summary

GLU()
Instantiates a new OpenGL Utility Library object.

Method Summary

static GL
getCurrentGL()
Returns the GL object associated with the OpenGL context current on the current thread.
void
gluBeginPolygon(GLUtessellator tessellator)
gluBeginPolygon and gluEndPolygon delimit the definition of a nonconvex polygon.
int
gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int level, int base, int max, Buffer data)
Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
int
gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, Buffer data)
Interface to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);
int
gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int level, int base, int max, Buffer data)
Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
int
gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, Buffer data)
Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);
int
gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int level, int base, int max, Buffer data)
Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);
int
gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, Buffer data)
Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
boolean
gluCheckExtension(String extName, String extString)
void
gluCylinder(GLUquadric quad, double base, double top, double height, int slices, int stacks)
Interface to C language function:
void gluCylinder(GLUquadric * quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);
void
gluDeleteQuadric(GLUquadric quad)
Interface to C language function:
void gluDeleteQuadric(GLUquadric * quad);
void
gluDeleteTess(GLUtessellator tessellator)
gluDeleteTess destroys the indicated tessellation object (which was created with gluNewTess).
void
gluDisk(GLUquadric quad, double inner, double outer, int slices, int loops)
Interface to C language function:
void gluDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);
void
gluEndPolygon(GLUtessellator tessellator)
gluEndPolygon and gluBeginPolygon delimit the definition of a nonconvex polygon.
String
gluErrorString(int errorCode)
String
gluGetString(int name)
void
gluGetTessProperty(GLUtessellator tessellator, int which, double[] value, int value_offset)
gluGetTessProperty retrieves properties stored in a tessellation object.
void
gluLookAt(double eyeX, double eyeY, double eyeZ, double centerX, double centerY, double centerZ, double upX, double upY, double upZ)
GLUquadric
gluNewQuadric()
Interface to C language function:
GLUquadric * gluNewQuadric(void);
GLUtessellator
gluNewTess()
gluNewTess creates and returns a new tessellation object.
void
gluNextContour(GLUtessellator tessellator, int type)
gluNextContour is used to describe polygons with multiple contours.
void
gluOrtho2D(double left, double right, double bottom, double top)
void
gluPartialDisk(GLUquadric quad, double inner, double outer, int slices, int loops, double start, double sweep)
Interface to C language function:
void gluPartialDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);
void
gluPerspective(double fovy, double aspect, double zNear, double zFar)
void
gluPickMatrix(double x, double y, double delX, double delY, IntBuffer viewport)
void
gluPickMatrix(double x, double y, double delX, double delY, int[] viewport, int viewport_offset)
boolean
gluProject(double objX, double objY, double objZ, DoubleBuffer model, DoubleBuffer proj, IntBuffer view, DoubleBuffer winPos)
Interface to C language function:
GLint gluProject(GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * winX, GLdouble * winY, GLdouble * winZ);

Accepts the outgoing window coordinates as a single buffer.

boolean
gluProject(double objX, double objY, double objZ, double[] model, int model_offset, double[] proj, int proj_offset, int[] view, int view_offset, double[] winPos, int winPos_offset)
Interface to C language function:
GLint gluProject(GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * winX, GLdouble * winY, GLdouble * winZ);

Accepts the outgoing window coordinates as a single array.

void
gluQuadricDrawStyle(GLUquadric quad, int draw)
Interface to C language function:
void gluQuadricDrawStyle(GLUquadric * quad, GLenum draw);
void
gluQuadricNormals(GLUquadric quad, int normal)
Interface to C language function:
void gluQuadricNormals(GLUquadric * quad, GLenum normal);
void
gluQuadricOrientation(GLUquadric quad, int orientation)
Interface to C language function:
void gluQuadricOrientation(GLUquadric * quad, GLenum orientation);
void
gluQuadricTexture(GLUquadric quad, boolean texture)
Interface to C language function:
void gluQuadricTexture(GLUquadric * quad, GLboolean texture);
int
gluScaleImage(int format, int wIn, int hIn, int typeIn, Buffer dataIn, int wOut, int hOut, int typeOut, Buffer dataOut)
Interface to C language function:
GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
void
gluSphere(GLUquadric quad, double radius, int slices, int stacks)
Interface to C language function:
void gluSphere(GLUquadric * quad, GLdouble radius, GLint slices, GLint stacks);
void
gluTessBeginContour(GLUtessellator tessellator)
gluTessBeginContour and gluTessEndContour delimit the definition of a polygon contour.
void
gluTessBeginPolygon(GLUtessellator tessellator, Object data)
gluTessBeginPolygon and gluTessEndPolygon delimit the definition of a convex, concave or self-intersecting polygon.
void
gluTessCallback(GLUtessellator tessellator, int which, GLUtessellatorCallback aCallback)
gluTessCallback is used to indicate a callback to be used by a tessellation object.
void
gluTessEndContour(GLUtessellator tessellator)
gluTessEndContour and gluTessBeginContour delimit the definition of a polygon contour.
void
gluTessEndPolygon(GLUtessellator tessellator)
gluTessEndPolygon and gluTessBeginPolygon delimit the definition of a convex, concave or self-intersecting polygon.
void
gluTessNormal(GLUtessellator tessellator, double x, double y, double z)
gluTessNormal describes a normal for a polygon that the program is defining.
void
gluTessProperty(GLUtessellator tessellator, int which, double value)
gluTessProperty is used to control properites stored in a tessellation object.
void
gluTessVertex(GLUtessellator tessellator, double[] coords, int coords_offset, Object data)
gluTessVertex describes a vertex on a polygon that the program defines.
boolean
gluUnProject(double winX, double winY, double winZ, DoubleBuffer model, DoubleBuffer proj, IntBuffer view, DoubleBuffer objPos)
Interface to C language function:
GLint gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * objX, GLdouble * objY, GLdouble * objZ);

Accepts the outgoing object coordinates (a 3-vector) as a single buffer.

boolean
gluUnProject(double winX, double winY, double winZ, double[] model, int model_offset, double[] proj, int proj_offset, int[] view, int view_offset, double[] objPos, int objPos_offset)
Interface to C language function:
GLint gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * objX, GLdouble * objY, GLdouble * objZ);

Accepts the outgoing object coordinates (a 3-vector) as a single array.

boolean
gluUnProject4(double winX, double winY, double winZ, double clipW, DoubleBuffer model, DoubleBuffer proj, IntBuffer view, double nearVal, double farVal, DoubleBuffer objPos)
Interface to C language function:
GLint gluUnProject4(GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble nearVal, GLdouble farVal, GLdouble * objX, GLdouble * objY, GLdouble * objZ, GLdouble * objW);

Accepts the outgoing object coordinates (a 4-vector) as a single buffer.

boolean
gluUnProject4(double winX, double winY, double winZ, double clipW, double[] model, int model_offset, double[] proj, int proj_offset, int[] view, int view_offset, double nearVal, double farVal, double[] objPos, int objPos_offset)
Interface to C language function:
GLint gluUnProject4(GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble nearVal, GLdouble farVal, GLdouble * objX, GLdouble * objY, GLdouble * objZ, GLdouble * objW);

Accepts the outgoing object coordinates (a 4-vector) as a single array.

boolean
isFunctionAvailable(String gluFunctionName)
Returns true if the specified GLU core- or extension-function can be successfully used through this GLU instance.

Field Details

GLU_BEGIN

public static final int GLU_BEGIN
Field Value:
100100

GLU_CCW

public static final int GLU_CCW
Field Value:
100121

GLU_CW

public static final int GLU_CW
Field Value:
100120

GLU_EDGE_FLAG

public static final int GLU_EDGE_FLAG
Field Value:
100104

GLU_END

public static final int GLU_END
Field Value:
100102

GLU_ERROR

public static final int GLU_ERROR
Field Value:
100103

GLU_EXTENSIONS

public static final int GLU_EXTENSIONS
Field Value:
100801

GLU_EXTERIOR

public static final int GLU_EXTERIOR
Field Value:
100123

GLU_FALSE

public static final int GLU_FALSE
Field Value:
0

GLU_FILL

public static final int GLU_FILL
Field Value:
100012

GLU_FLAT

public static final int GLU_FLAT
Field Value:
100001

GLU_INSIDE

public static final int GLU_INSIDE
Field Value:
100021

GLU_INTERIOR

public static final int GLU_INTERIOR
Field Value:
100122

GLU_INVALID_ENUM

public static final int GLU_INVALID_ENUM
Field Value:
100900

GLU_INVALID_OPERATION

public static final int GLU_INVALID_OPERATION
Field Value:
100904

GLU_INVALID_VALUE

public static final int GLU_INVALID_VALUE
Field Value:
100901

GLU_LINE

public static final int GLU_LINE
Field Value:
100011

GLU_NONE

public static final int GLU_NONE
Field Value:
100002

GLU_OUTSIDE

public static final int GLU_OUTSIDE
Field Value:
100020

GLU_OUT_OF_MEMORY

public static final int GLU_OUT_OF_MEMORY
Field Value:
100902

GLU_POINT

public static final int GLU_POINT
Field Value:
100010

GLU_SILHOUETTE

public static final int GLU_SILHOUETTE
Field Value:
100013

GLU_SMOOTH

public static final int GLU_SMOOTH
Field Value:
100000

GLU_TESS_BEGIN

public static final int GLU_TESS_BEGIN
Field Value:
100100

GLU_TESS_BEGIN_DATA

public static final int GLU_TESS_BEGIN_DATA
Field Value:
100106

GLU_TESS_BOUNDARY_ONLY

public static final int GLU_TESS_BOUNDARY_ONLY
Field Value:
100141

GLU_TESS_COMBINE

public static final int GLU_TESS_COMBINE
Field Value:
100105

GLU_TESS_COMBINE_DATA

public static final int GLU_TESS_COMBINE_DATA
Field Value:
100111

GLU_TESS_COORD_TOO_LARGE

public static final int GLU_TESS_COORD_TOO_LARGE
Field Value:
100155

GLU_TESS_EDGE_FLAG

public static final int GLU_TESS_EDGE_FLAG
Field Value:
100104

GLU_TESS_EDGE_FLAG_DATA

public static final int GLU_TESS_EDGE_FLAG_DATA
Field Value:
100110

GLU_TESS_END

public static final int GLU_TESS_END
Field Value:
100102

GLU_TESS_END_DATA

public static final int GLU_TESS_END_DATA
Field Value:
100108

GLU_TESS_ERROR

public static final int GLU_TESS_ERROR
Field Value:
100103

GLU_TESS_ERROR1

public static final int GLU_TESS_ERROR1
Field Value:
100151

GLU_TESS_ERROR2

public static final int GLU_TESS_ERROR2
Field Value:
100152

GLU_TESS_ERROR3

public static final int GLU_TESS_ERROR3
Field Value:
100153

GLU_TESS_ERROR4

public static final int GLU_TESS_ERROR4
Field Value:
100154

GLU_TESS_ERROR5

public static final int GLU_TESS_ERROR5
Field Value:
100155

GLU_TESS_ERROR6

public static final int GLU_TESS_ERROR6
Field Value:
100156

GLU_TESS_ERROR7

public static final int GLU_TESS_ERROR7
Field Value:
100157

GLU_TESS_ERROR8

public static final int GLU_TESS_ERROR8
Field Value:
100158

GLU_TESS_ERROR_DATA

public static final int GLU_TESS_ERROR_DATA
Field Value:
100109

GLU_TESS_MAX_COORD

public static final double GLU_TESS_MAX_COORD
Field Value:
2.147483647E9

GLU_TESS_MISSING_BEGIN_CONTOUR

public static final int GLU_TESS_MISSING_BEGIN_CONTOUR
Field Value:
100152

GLU_TESS_MISSING_BEGIN_POLYGON

public static final int GLU_TESS_MISSING_BEGIN_POLYGON
Field Value:
100151

GLU_TESS_MISSING_END_CONTOUR

public static final int GLU_TESS_MISSING_END_CONTOUR
Field Value:
100154

GLU_TESS_MISSING_END_POLYGON

public static final int GLU_TESS_MISSING_END_POLYGON
Field Value:
100153

GLU_TESS_NEED_COMBINE_CALLBACK

public static final int GLU_TESS_NEED_COMBINE_CALLBACK
Field Value:
100156

GLU_TESS_TOLERANCE

public static final int GLU_TESS_TOLERANCE
Field Value:
100142

GLU_TESS_VERTEX

public static final int GLU_TESS_VERTEX
Field Value:
100101

GLU_TESS_VERTEX_DATA

public static final int GLU_TESS_VERTEX_DATA
Field Value:
100107

GLU_TESS_WINDING_ABS_GEQ_TWO

public static final int GLU_TESS_WINDING_ABS_GEQ_TWO
Field Value:
100134

GLU_TESS_WINDING_NEGATIVE

public static final int GLU_TESS_WINDING_NEGATIVE
Field Value:
100133

GLU_TESS_WINDING_NONZERO

public static final int GLU_TESS_WINDING_NONZERO
Field Value:
100131

GLU_TESS_WINDING_ODD

public static final int GLU_TESS_WINDING_ODD
Field Value:
100130

GLU_TESS_WINDING_POSITIVE

public static final int GLU_TESS_WINDING_POSITIVE
Field Value:
100132

GLU_TESS_WINDING_RULE

public static final int GLU_TESS_WINDING_RULE
Field Value:
100140

GLU_TRUE

public static final int GLU_TRUE
Field Value:
1

GLU_UNKNOWN

public static final int GLU_UNKNOWN
Field Value:
100124

GLU_VERSION

public static final int GLU_VERSION
Field Value:
100800

GLU_VERTEX

public static final int GLU_VERTEX
Field Value:
100101

extensionString

public static final String extensionString

versionString

public static final String versionString

Constructor Details

GLU

public GLU()
Instantiates a new OpenGL Utility Library object. A GLU object may be instantiated at any point in the application and is not inherently tied to any particular OpenGL context; however, the GLU object may only be used when an OpenGL context is current on the current thread. Attempts to call most of the methods in the GLU library when no OpenGL context is current will cause an exception to be thrown.

The returned GLU object is not guaranteed to be thread-safe and should only be used from one thread at a time. Multiple GLU objects may be instantiated to be used from different threads simultaneously.

Method Details

getCurrentGL

public static GL getCurrentGL()
            throws GLException
Returns the GL object associated with the OpenGL context current on the current thread. Throws GLException if no OpenGL context is current.

gluBeginPolygon

public void gluBeginPolygon(GLUtessellator tessellator)
gluBeginPolygon and gluEndPolygon delimit the definition of a nonconvex polygon. To define such a polygon, first call gluBeginPolygon. Then define the contours of the polygon by calling gluTessVertex for each vertex and gluNextContour to start each new contour. Finally, call gluEndPolygon to signal the end of the definition. See the gluTessVertex and gluNextContour reference pages for more details.

Once gluEndPolygon is called, the polygon is tessellated, and the resulting triangles are described through callbacks. See gluTessCallback for descriptions of the callback methods.

Parameters:
tessellator - Specifies the tessellation object (created with gluNewTess).

gluBuild1DMipmapLevels

public int gluBuild1DMipmapLevels(int target,
                                  int internalFormat,
                                  int width,
                                  int format,
                                  int type,
                                  int level,
                                  int base,
                                  int max,
                                  Buffer data)
Interface to C language function:
GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);

gluBuild1DMipmaps

public int gluBuild1DMipmaps(int target,
                             int internalFormat,
                             int width,
                             int format,
                             int type,
                             Buffer data)
Interface to C language function:
GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void * data);

gluBuild2DMipmapLevels

public int gluBuild2DMipmapLevels(int target,
                                  int internalFormat,
                                  int width,
                                  int height,
                                  int format,
                                  int type,
                                  int level,
                                  int base,
                                  int max,
                                  Buffer data)
Interface to C language function:
GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);

gluBuild2DMipmaps

public int gluBuild2DMipmaps(int target,
                             int internalFormat,
                             int width,
                             int height,
                             int format,
                             int type,
                             Buffer data)
Interface to C language function:
GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * data);

gluBuild3DMipmapLevels

public int gluBuild3DMipmapLevels(int target,
                                  int internalFormat,
                                  int width,
                                  int height,
                                  int depth,
                                  int format,
                                  int type,
                                  int level,
                                  int base,
                                  int max,
                                  Buffer data)
Interface to C language function:
GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void * data);

gluBuild3DMipmaps

public int gluBuild3DMipmaps(int target,
                             int internalFormat,
                             int width,
                             int height,
                             int depth,
                             int format,
                             int type,
                             Buffer data)
Interface to C language function:
GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);

gluCheckExtension

public boolean gluCheckExtension(String extName,
                                 String extString)

gluCylinder

public void gluCylinder(GLUquadric quad,
                        double base,
                        double top,
                        double height,
                        int slices,
                        int stacks)
Interface to C language function:
void gluCylinder(GLUquadric * quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);

gluDeleteQuadric

public void gluDeleteQuadric(GLUquadric quad)
Interface to C language function:
void gluDeleteQuadric(GLUquadric * quad);

gluDeleteTess

public void gluDeleteTess(GLUtessellator tessellator)
gluDeleteTess destroys the indicated tessellation object (which was created with gluNewTess).
Parameters:
tessellator - Specifies the tessellation object to destroy.

gluDisk

public void gluDisk(GLUquadric quad,
                    double inner,
                    double outer,
                    int slices,
                    int loops)
Interface to C language function:
void gluDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);

gluEndPolygon

public void gluEndPolygon(GLUtessellator tessellator)
gluEndPolygon and gluBeginPolygon delimit the definition of a nonconvex polygon. To define such a polygon, first call gluBeginPolygon. Then define the contours of the polygon by calling gluTessVertex for each vertex and gluNextContour to start each new contour. Finally, call gluEndPolygon to signal the end of the definition. See the gluTessVertex and gluNextContour reference pages for more details.

Once gluEndPolygon is called, the polygon is tessellated, and the resulting triangles are described through callbacks. See gluTessCallback for descriptions of the callback methods.

Parameters:
tessellator - Specifies the tessellation object (created with gluNewTess).

gluErrorString

public String gluErrorString(int errorCode)

gluGetString

public String gluGetString(int name)

gluGetTessProperty

public void gluGetTessProperty(GLUtessellator tessellator,
                               int which,
                               double[] value,
                               int value_offset)
gluGetTessProperty retrieves properties stored in a tessellation object. These properties affect the way that tessellation objects are interpreted and rendered. See the gluTessProperty reference page for information about the properties and what they do.
Parameters:
tessellator - Specifies the tessellation object (created with gluNewTess).
which - Specifies the property whose value is to be fetched. Valid values are GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARY_ONLY, and GLU_TESS_TOLERANCES.
value - Specifices an array into which the value of the named property is written.

gluLookAt

public void gluLookAt(double eyeX,
                      double eyeY,
                      double eyeZ,
                      double centerX,
                      double centerY,
                      double centerZ,
                      double upX,
                      double upY,
                      double upZ)

gluNewQuadric

public GLUquadric gluNewQuadric()
Interface to C language function:
GLUquadric * gluNewQuadric(void);

gluNewTess

public GLUtessellator gluNewTess()
gluNewTess creates and returns a new tessellation object. This object must be referred to when calling tesselation methods. A return value of null means that there was not enough memeory to allocate the object.
Returns:
A new tessellation object.

gluNextContour

public void gluNextContour(GLUtessellator tessellator,
                           int type)
gluNextContour is used to describe polygons with multiple contours. After you describe the first contour through a series of gluTessVertex calls, a gluNextContour call indicates that the previous contour is complete and that the next contour is about to begin. Perform another series of gluTessVertex calls to describe the new contour. Repeat this process until all contours have been described.

The type parameter defines what type of contour follows. The following values are valid.

GLU_EXTERIOR

    GLU_INTERIOR
      GLU_UNKNOWN
        GLU_CCW, GLU_CW
          GLU_CCWGLU_CWGLU_CCWGLU_CWGLU_CCWGLU_CWGLU_UNKNOWNGLU_CCWGLU_CW

        To define the type of the first contour, you can call gluNextContour before describing the first contour. If you do not call gluNextContour before the first contour, the first contour is marked GLU_EXTERIOR.

        Parameters:
        tessellator - Specifies the tessellation object (created with gluNewTess).
        type - The type of the contour being defined.

        gluOrtho2D

        public void gluOrtho2D(double left,
                               double right,
                               double bottom,
                               double top)

        gluPartialDisk

        public void gluPartialDisk(GLUquadric quad,
                                   double inner,
                                   double outer,
                                   int slices,
                                   int loops,
                                   double start,
                                   double sweep)
        Interface to C language function:
        void gluPartialDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);

        gluPerspective

        public void gluPerspective(double fovy,
                                   double aspect,
                                   double zNear,
                                   double zFar)

        gluPickMatrix

        public void gluPickMatrix(double x,
                                  double y,
                                  double delX,
                                  double delY,
                                  IntBuffer viewport)

        gluPickMatrix

        public void gluPickMatrix(double x,
                                  double y,
                                  double delX,
                                  double delY,
                                  int[] viewport,
                                  int viewport_offset)

        gluProject

        public boolean gluProject(double objX,
                                  double objY,
                                  double objZ,
                                  DoubleBuffer model,
                                  DoubleBuffer proj,
                                  IntBuffer view,
                                  DoubleBuffer winPos)
        Interface to C language function:
        GLint gluProject(GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * winX, GLdouble * winY, GLdouble * winZ);

        Accepts the outgoing window coordinates as a single buffer.


        gluProject

        public boolean gluProject(double objX,
                                  double objY,
                                  double objZ,
                                  double[] model,
                                  int model_offset,
                                  double[] proj,
                                  int proj_offset,
                                  int[] view,
                                  int view_offset,
                                  double[] winPos,
                                  int winPos_offset)
        Interface to C language function:
        GLint gluProject(GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * winX, GLdouble * winY, GLdouble * winZ);

        Accepts the outgoing window coordinates as a single array.


        gluQuadricDrawStyle

        public void gluQuadricDrawStyle(GLUquadric quad,
                                        int draw)
        Interface to C language function:
        void gluQuadricDrawStyle(GLUquadric * quad, GLenum draw);

        gluQuadricNormals

        public void gluQuadricNormals(GLUquadric quad,
                                      int normal)
        Interface to C language function:
        void gluQuadricNormals(GLUquadric * quad, GLenum normal);

        gluQuadricOrientation

        public void gluQuadricOrientation(GLUquadric quad,
                                          int orientation)
        Interface to C language function:
        void gluQuadricOrientation(GLUquadric * quad, GLenum orientation);

        gluQuadricTexture

        public void gluQuadricTexture(GLUquadric quad,
                                      boolean texture)
        Interface to C language function:
        void gluQuadricTexture(GLUquadric * quad, GLboolean texture);

        gluScaleImage

        public int gluScaleImage(int format,
                                 int wIn,
                                 int hIn,
                                 int typeIn,
                                 Buffer dataIn,
                                 int wOut,
                                 int hOut,
                                 int typeOut,
                                 Buffer dataOut)
        Interface to C language function:
        GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void * dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid * dataOut);

        gluSphere

        public void gluSphere(GLUquadric quad,
                              double radius,
                              int slices,
                              int stacks)
        Interface to C language function:
        void gluSphere(GLUquadric * quad, GLdouble radius, GLint slices, GLint stacks);

        gluTessBeginContour

        public void gluTessBeginContour(GLUtessellator tessellator)
        gluTessBeginContour and gluTessEndContour delimit the definition of a polygon contour. Within each gluTessBeginContour/ gluTessEndContour pair, there can be zero or more calls to gluTessVertex. The vertices specify a closed contour (the last vertex of each contour is automatically linked to the first). See the gluTessVertex reference page for more details. gluTessBeginContour can only be called between gluTessBeginPolygon and gluTessEndPolygon.
        Parameters:
        tessellator - Specifies the tessellation object (created with gluNewTess).

        gluTessBeginPolygon

        public void gluTessBeginPolygon(GLUtessellator tessellator,
                                        Object data)
        gluTessBeginPolygon and gluTessEndPolygon delimit the definition of a convex, concave or self-intersecting polygon. Within each gluTessBeginPolygon/ gluTessEndPolygon pair, there must be one or more calls to gluTessBeginContour/ gluTessEndContour. Within each contour, there are zero or more calls to gluTessVertex. The vertices specify a closed contour (the last vertex of each contour is automatically linked to the first). See the gluTessVertex, gluTessBeginContour, and gluTessEndContour reference pages for more details.

        data is a reference to a user-defined data structure. If the appropriate callback(s) are specified (see gluTessCallback), then this reference is returned to the callback method(s). Thus, it is a convenient way to store per-polygon information.

        Once gluTessEndPolygon is called, the polygon is tessellated, and the resulting triangles are described through callbacks. See gluTessCallback for descriptions of the callback methods.

        Parameters:
        tessellator - Specifies the tessellation object (created with gluNewTess).
        data - Specifies a reference to user polygon data.

        gluTessCallback

        public void gluTessCallback(GLUtessellator tessellator,
                                    int which,
                                    GLUtessellatorCallback aCallback)
        gluTessCallback is used to indicate a callback to be used by a tessellation object. If the specified callback is already defined, then it is replaced. If aCallback is null, then the existing callback becomes undefined.

        These callbacks are used by the tessellation object to describe how a polygon specified by the user is broken into triangles. Note that there are two versions of each callback: one with user-specified polygon data and one without. If both versions of a particular callback are specified, then the callback with user-specified polygon data will be used. Note that the polygonData parameter used by some of the methods is a copy of the reference that was specified when gluTessBeginPolygon was called. The legal callbacks are as follows:

        GLU_TESS_BEGIN

          glBeginGLU_TESS_BOUNDARY_ONLYGL_FALSEGL_TRIANGLE_FANGL_TRIANGLE_STRIPGL_TRIANGLESGLU_TESS_BOUNDARY_ONLYGL_TRUEGL_LINE_LOOP
                 void begin(int type);

        GLU_TESS_BEGIN_DATA

                 void beginData(int type, Object polygonData);
        GLU_TESS_EDGE_FLAG
          glEdgeFlagGL_TRUEGL_FALSE

          GL_TRIANGLE_FANGL_TRIANGLE_STRIP

                 void edgeFlag(boolean boundaryEdge);
        GLU_TESS_EDGE_FLAG_DATA
                 void edgeFlagData(boolean boundaryEdge, Object polygonData);
        GLU_TESS_VERTEX
                 void vertex(Object vertexData);
        GLU_TESS_VERTEX_DATA
                 void vertexData(Object vertexData, Object polygonData);
        GLU_TESS_END
                 void end();
        GLU_TESS_END_DATA
                 void endData(Object polygonData);
        GLU_TESS_COMBINE
                   void combine(double[] coords, Object[] data,
                                float[] weight, Object[] outData);
                   void myCombine(double[] coords, Object[] data,
                                  float[] weight, Object[] outData)
                   {
                      MyVertex newVertex = new MyVertex();
          
                      newVertex.x = coords[0];
                      newVertex.y = coords[1];
                      newVertex.z = coords[2];
                      newVertex.r = weight[0]*data[0].r +
                                    weight[1]*data[1].r +
                                    weight[2]*data[2].r +
                                    weight[3]*data[3].r;
                      newVertex.g = weight[0]*data[0].g +
                                    weight[1]*data[1].g +
                                    weight[2]*data[2].g +
                                    weight[3]*data[3].g;
                      newVertex.b = weight[0]*data[0].b +
                                    weight[1]*data[1].b +
                                    weight[2]*data[2].b +
                                    weight[3]*data[3].b;
                      newVertex.a = weight[0]*data[0].a +
                                    weight[1]*data[1].a +
                                    weight[2]*data[2].a +
                                    weight[3]*data[3].a;
                      outData = newVertex;
                   }
            GLU_TESS_COMBINEGLU_TESS_COMBINE_DATAoutDataGLU_TESS_NEED_COMBINE_CALLBACK
          GLU_TESS_COMBINE_DATA
                   void combineData(double[] coords, Object[] data,
          float[] weight, Object[] outData,
          Object polygonData);
          GLU_TESS_ERROR
            GLU_TESS_MISSING_BEGIN_POLYGONGLU_TESS_MISSING_END_POLYGONGLU_TESS_MISSING_BEGIN_CONTOURGLU_TESS_MISSING_END_CONTOURGLU_TESS_COORD_TOO_LARGEGLU_TESS_NEED_COMBINE_CALLBACKGLU_OUT_OF_MEMORYgluErrorString
                   void error(int errnum);
            GLU_TESS_COORD_TOO_LARGEGLU_TESS_MAX_COORDGLU_TESS_NEED_COMBINE_CALLBACKGLU_TESS_COMBINEGLU_TESS_COMBINE_DATAGLU_OUT_OF_MEMORY
          GLU_TESS_ERROR_DATA
                   void errorData(int errnum, Object polygonData);
          Parameters:
          tessellator - Specifies the tessellation object (created with gluNewTess).
          which - Specifies the callback being defined. The following values are valid: GLU_TESS_BEGIN, GLU_TESS_BEGIN_DATA, GLU_TESS_EDGE_FLAG, GLU_TESS_EDGE_FLAG_DATA, GLU_TESS_VERTEX, GLU_TESS_VERTEX_DATA, GLU_TESS_END, GLU_TESS_END_DATA, GLU_TESS_COMBINE, GLU_TESS_COMBINE_DATA, GLU_TESS_ERROR, and GLU_TESS_ERROR_DATA.
          aCallback - Specifies the callback object to be called.

          gluTessEndContour

          public void gluTessEndContour(GLUtessellator tessellator)
          gluTessEndContour and gluTessBeginContour delimit the definition of a polygon contour. Within each gluTessBeginContour/ gluTessEndContour pair, there can be zero or more calls to gluTessVertex. The vertices specify a closed contour (the last vertex of each contour is automatically linked to the first). See the gluTessVertex reference page for more details. gluTessBeginContour can only be called between gluTessBeginPolygon and gluTessEndPolygon.
          Parameters:
          tessellator - Specifies the tessellation object (created with gluNewTess).

          gluTessEndPolygon

          public void gluTessEndPolygon(GLUtessellator tessellator)
          gluTessEndPolygon and gluTessBeginPolygon delimit the definition of a convex, concave or self-intersecting polygon. Within each gluTessBeginPolygon/gluTessEndPolygon pair, there must be one or more calls to gluTessBeginContour/gluTessEndContour. Within each contour, there are zero or more calls to gluTessVertex. The vertices specify a closed contour (the last vertex of each contour is automatically linked to the first). See the gluTessVertex, gluTessBeginContour and gluTessEndContour reference pages for more details.

          Once gluTessEndPolygon is called, the polygon is tessellated, and the resulting triangles are described through callbacks. See gluTessCallback for descriptions of the callback functions.

          Parameters:
          tessellator - Specifies the tessellation object (created with gluNewTess).

          gluTessNormal

          public void gluTessNormal(GLUtessellator tessellator,
                                    double x,
                                    double y,
                                    double z)
          gluTessNormal describes a normal for a polygon that the program is defining. All input data will be projected onto a plane perpendicular to the one of the three coordinate axes before tessellation and all output triangles will be oriented CCW with repsect to the normal (CW orientation can be obtained by reversing the sign of the supplied normal). For example, if you know that all polygons lie in the x-y plane, call gluTessNormal(tess, 0.0, 0.0, 0.0) before rendering any polygons.

          If the supplied normal is (0.0, 0.0, 0.0)(the initial value), the normal is determined as follows. The direction of the normal, up to its sign, is found by fitting a plane to the vertices, without regard to how the vertices are connected. It is expected that the input data lies approximately in the plane; otherwise, projection perpendicular to one of the three coordinate axes may substantially change the geometry. The sign of the normal is chosen so that the sum of the signed areas of all input contours is nonnegative (where a CCW contour has positive area).

          The supplied normal persists until it is changed by another call to gluTessNormal.

          Parameters:
          tessellator - Specifies the tessellation object (created by gluNewTess).
          x - Specifies the first component of the normal.
          y - Specifies the second component of the normal.
          z - Specifies the third component of the normal.

          gluTessProperty

          public void gluTessProperty(GLUtessellator tessellator,
                                      int which,
                                      double value)
          gluTessProperty is used to control properites stored in a tessellation object. These properties affect the way that the polygons are interpreted and rendered. The legal value for which are as follows:

          GLU_TESS_WINDING_RULE

            value
            GLU_TESS_WINDING_ODD
            GLU_TESS_WINDING_NONZERO
            GLU_TESS_WINDING_POSITIVE
            GLU_TESS_WINDING_NEGATIVE
            GLU_TESS_WINDING_ABS_GEQ_TWO


          GLU_TESS_BOUNDARY_ONLY
            GLU_TESS_BEGINGLU_TESS_BEGIN_DATA

          GLU_TESS_TOLERANCE

          Parameters:
          tessellator - Specifies the tessellation object created with gluNewTess
          which - Specifies the property to be set. Valid values are GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARDY_ONLY, GLU_TESS_TOLERANCE.
          value - Specifices the value of the indicated property.

          gluTessVertex

          public void gluTessVertex(GLUtessellator tessellator,
                                    double[] coords,
                                    int coords_offset,
                                    Object data)
          gluTessVertex describes a vertex on a polygon that the program defines. Successive gluTessVertex calls describe a closed contour. For example, to describe a quadrilateral gluTessVertex should be called four times. gluTessVertex can only be called between gluTessBeginContour and gluTessEndContour.

          data normally references to a structure containing the vertex location, as well as other per-vertex attributes such as color and normal. This reference is passed back to the user through the GLU_TESS_VERTEX or GLU_TESS_VERTEX_DATA callback after tessellation (see the gluTessCallback reference page).

          Parameters:
          tessellator - Specifies the tessellation object (created with gluNewTess).
          coords - Specifies the coordinates of the vertex.
          data - Specifies an opaque reference passed back to the program with the vertex callback (as specified by gluTessCallback).

          gluUnProject

          public boolean gluUnProject(double winX,
                                      double winY,
                                      double winZ,
                                      DoubleBuffer model,
                                      DoubleBuffer proj,
                                      IntBuffer view,
                                      DoubleBuffer objPos)
          Interface to C language function:
          GLint gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * objX, GLdouble * objY, GLdouble * objZ);

          Accepts the outgoing object coordinates (a 3-vector) as a single buffer.


          gluUnProject

          public boolean gluUnProject(double winX,
                                      double winY,
                                      double winZ,
                                      double[] model,
                                      int model_offset,
                                      double[] proj,
                                      int proj_offset,
                                      int[] view,
                                      int view_offset,
                                      double[] objPos,
                                      int objPos_offset)
          Interface to C language function:
          GLint gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble * objX, GLdouble * objY, GLdouble * objZ);

          Accepts the outgoing object coordinates (a 3-vector) as a single array.


          gluUnProject4

          public boolean gluUnProject4(double winX,
                                       double winY,
                                       double winZ,
                                       double clipW,
                                       DoubleBuffer model,
                                       DoubleBuffer proj,
                                       IntBuffer view,
                                       double nearVal,
                                       double farVal,
                                       DoubleBuffer objPos)
          Interface to C language function:
          GLint gluUnProject4(GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble nearVal, GLdouble farVal, GLdouble * objX, GLdouble * objY, GLdouble * objZ, GLdouble * objW);

          Accepts the outgoing object coordinates (a 4-vector) as a single buffer.


          gluUnProject4

          public boolean gluUnProject4(double winX,
                                       double winY,
                                       double winZ,
                                       double clipW,
                                       double[] model,
                                       int model_offset,
                                       double[] proj,
                                       int proj_offset,
                                       int[] view,
                                       int view_offset,
                                       double nearVal,
                                       double farVal,
                                       double[] objPos,
                                       int objPos_offset)
          Interface to C language function:
          GLint gluUnProject4(GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble * model, const GLdouble * proj, const GLint * view, GLdouble nearVal, GLdouble farVal, GLdouble * objX, GLdouble * objY, GLdouble * objZ, GLdouble * objW);

          Accepts the outgoing object coordinates (a 4-vector) as a single array.


          isFunctionAvailable

          public boolean isFunctionAvailable(String gluFunctionName)
          Returns true if the specified GLU core- or extension-function can be successfully used through this GLU instance. By "successfully" we mean that the function is both callable on the machine running the program and available on the current display.

          A GLU function is callable if it is a GLU core- or extension-function that is supported by the underlying GLU implementation. The function is available if the OpenGL implementation on the display meets the requirements of the GLU function being called (because GLU functions utilize OpenGL functions).

          Whether or not a GLU function is callable is determined as follows:

          • If the function is a GLU core function (i.e., not an extension), gluGetString(GLU_VERSION) is used to determine the version number of the underlying GLU implementation on the host. then the function name is cross-referenced with that specification to see if it is part of that version's specification.
          • If the function is a GLU extension, the function name is cross-referenced with the list returned by gluGetString(GLU_EXTENSIONS) to see if the function is one of the extensions that is supported by the underlying GLU implementation.
          Whether or not a GLU function is available is determined as follows:
          • If the function is a GLU core function then the function is first cross-referenced with the GLU specifications to find the minimum GLU version required to call that GLU function. Then the following table is consulted to determine the minimum GL version required for that version of GLU:
            • GLU 1.0 requires OpenGL 1.0
            • GLU 1.1 requires OpenGL 1.0
            • GLU 1.2 requires OpenGL 1.1
            • GLU 1.3 requires OpenGL 1.2
            Finally, glGetString(GL_VERSION) is used to determine the highest OpenGL version that both host and display support, and from that it is possible to determine if the GL facilities required by the GLU function are available on the display.
          • If the function is a GLU extension, the function name is cross-referenced with the list returned by gluGetString(GLU_EXTENSIONS) to see if the function is one of the extensions that is supported by the underlying GLU implementation. NOTE:The availability of a function may change at runtime in response to changes in the display environment. For example, when a window is dragged from one display to another on a multi-display system, or when the properties of the display device are modified (e.g., changing the color depth of the display). Any application that is concerned with handling these situations correctly should confirm availability after a display change before calling a questionable OpenGL function. To detect a change in the display device, please see GLEventListener.displayChanged(GLAutoDrawable,boolean,boolean).
          • Parameters:
            gluFunctionName - the name of the OpenGL function (e.g., use "gluNurbsCallbackDataEXT" to check if the gluNurbsCallbackDataEXT(GLUnurbs, GLvoid) extension is available).

            Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.