javax.media.opengl.glu
Class GLU

java.lang.Object
  extended byjavax.media.opengl.glu.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 String extensionString
           
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_OUT_OF_MEMORY
           
static int GLU_OUTSIDE
           
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_ERROR_DATA
           
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 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 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, int[] viewport, int viewport_offset)
           
 void gluPickMatrix(double x, double y, double delX, double delY, IntBuffer viewport)
           
 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);
 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);
 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, 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);
 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);
 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);
 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);
 boolean isFunctionAvailable(String gluFunctionName)
          Returns true if the specified GLU core- or extension-function can be successfully used through this GLU instance.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GLU_FALSE

public static final int GLU_FALSE
See Also:
Constant Field Values

GLU_TRUE

public static final int GLU_TRUE
See Also:
Constant Field Values

GLU_VERSION

public static final int GLU_VERSION
See Also:
Constant Field Values

GLU_EXTENSIONS

public static final int GLU_EXTENSIONS
See Also:
Constant Field Values

versionString

public static final String versionString
See Also:
Constant Field Values

extensionString

public static final String extensionString
See Also:
Constant Field Values

GLU_INVALID_ENUM

public static final int GLU_INVALID_ENUM
See Also:
Constant Field Values

GLU_INVALID_VALUE

public static final int GLU_INVALID_VALUE
See Also:
Constant Field Values

GLU_OUT_OF_MEMORY

public static final int GLU_OUT_OF_MEMORY
See Also:
Constant Field Values

GLU_INVALID_OPERATION

public static final int GLU_INVALID_OPERATION
See Also:
Constant Field Values

GLU_ERROR

public static final int GLU_ERROR
See Also:
Constant Field Values

GLU_POINT

public static final int GLU_POINT
See Also:
Constant Field Values

GLU_LINE

public static final int GLU_LINE
See Also:
Constant Field Values

GLU_FILL

public static final int GLU_FILL
See Also:
Constant Field Values

GLU_SILHOUETTE

public static final int GLU_SILHOUETTE
See Also:
Constant Field Values

GLU_SMOOTH

public static final int GLU_SMOOTH
See Also:
Constant Field Values

GLU_FLAT

public static final int GLU_FLAT
See Also:
Constant Field Values

GLU_NONE

public static final int GLU_NONE
See Also:
Constant Field Values

GLU_OUTSIDE

public static final int GLU_OUTSIDE
See Also:
Constant Field Values

GLU_INSIDE

public static final int GLU_INSIDE
See Also:
Constant Field Values

GLU_TESS_BEGIN

public static final int GLU_TESS_BEGIN
See Also:
Constant Field Values

GLU_BEGIN

public static final int GLU_BEGIN
See Also:
Constant Field Values

GLU_TESS_VERTEX

public static final int GLU_TESS_VERTEX
See Also:
Constant Field Values

GLU_VERTEX

public static final int GLU_VERTEX
See Also:
Constant Field Values

GLU_TESS_END

public static final int GLU_TESS_END
See Also:
Constant Field Values

GLU_END

public static final int GLU_END
See Also:
Constant Field Values

GLU_TESS_ERROR

public static final int GLU_TESS_ERROR
See Also:
Constant Field Values

GLU_TESS_EDGE_FLAG

public static final int GLU_TESS_EDGE_FLAG
See Also:
Constant Field Values

GLU_EDGE_FLAG

public static final int GLU_EDGE_FLAG
See Also:
Constant Field Values

GLU_TESS_COMBINE

public static final int GLU_TESS_COMBINE
See Also:
Constant Field Values

GLU_TESS_BEGIN_DATA

public static final int GLU_TESS_BEGIN_DATA
See Also:
Constant Field Values

GLU_TESS_VERTEX_DATA

public static final int GLU_TESS_VERTEX_DATA
See Also:
Constant Field Values

GLU_TESS_END_DATA

public static final int GLU_TESS_END_DATA
See Also:
Constant Field Values

GLU_TESS_ERROR_DATA

public static final int GLU_TESS_ERROR_DATA
See Also:
Constant Field Values

GLU_TESS_EDGE_FLAG_DATA

public static final int GLU_TESS_EDGE_FLAG_DATA
See Also:
Constant Field Values

GLU_TESS_COMBINE_DATA

public static final int GLU_TESS_COMBINE_DATA
See Also:
Constant Field Values

GLU_CW

public static final int GLU_CW
See Also:
Constant Field Values

GLU_CCW

public static final int GLU_CCW
See Also:
Constant Field Values

GLU_INTERIOR

public static final int GLU_INTERIOR
See Also:
Constant Field Values

GLU_EXTERIOR

public static final int GLU_EXTERIOR
See Also:
Constant Field Values

GLU_UNKNOWN

public static final int GLU_UNKNOWN
See Also:
Constant Field Values

GLU_TESS_WINDING_RULE

public static final int GLU_TESS_WINDING_RULE
See Also:
Constant Field Values

GLU_TESS_BOUNDARY_ONLY

public static final int GLU_TESS_BOUNDARY_ONLY
See Also:
Constant Field Values

GLU_TESS_TOLERANCE

public static final int GLU_TESS_TOLERANCE
See Also:
Constant Field Values

GLU_TESS_ERROR1

public static final int GLU_TESS_ERROR1
See Also:
Constant Field Values

GLU_TESS_ERROR2

public static final int GLU_TESS_ERROR2
See Also:
Constant Field Values

GLU_TESS_ERROR3

public static final int GLU_TESS_ERROR3
See Also:
Constant Field Values

GLU_TESS_ERROR4

public static final int GLU_TESS_ERROR4
See Also:
Constant Field Values

GLU_TESS_ERROR5

public static final int GLU_TESS_ERROR5
See Also:
Constant Field Values

GLU_TESS_ERROR6

public static final int GLU_TESS_ERROR6
See Also:
Constant Field Values

GLU_TESS_ERROR7

public static final int GLU_TESS_ERROR7
See Also:
Constant Field Values

GLU_TESS_ERROR8

public static final int GLU_TESS_ERROR8
See Also:
Constant Field Values

GLU_TESS_MISSING_BEGIN_POLYGON

public static final int GLU_TESS_MISSING_BEGIN_POLYGON
See Also:
Constant Field Values

GLU_TESS_MISSING_BEGIN_CONTOUR

public static final int GLU_TESS_MISSING_BEGIN_CONTOUR
See Also:
Constant Field Values

GLU_TESS_MISSING_END_POLYGON

public static final int GLU_TESS_MISSING_END_POLYGON
See Also:
Constant Field Values

GLU_TESS_MISSING_END_CONTOUR

public static final int GLU_TESS_MISSING_END_CONTOUR
See Also:
Constant Field Values

GLU_TESS_COORD_TOO_LARGE

public static final int GLU_TESS_COORD_TOO_LARGE
See Also:
Constant Field Values

GLU_TESS_NEED_COMBINE_CALLBACK

public static final int GLU_TESS_NEED_COMBINE_CALLBACK
See Also:
Constant Field Values

GLU_TESS_WINDING_ODD

public static final int GLU_TESS_WINDING_ODD
See Also:
Constant Field Values

GLU_TESS_WINDING_NONZERO

public static final int GLU_TESS_WINDING_NONZERO
See Also:
Constant Field Values

GLU_TESS_WINDING_POSITIVE

public static final int GLU_TESS_WINDING_POSITIVE
See Also:
Constant Field Values

GLU_TESS_WINDING_NEGATIVE

public static final int GLU_TESS_WINDING_NEGATIVE
See Also:
Constant Field Values

GLU_TESS_WINDING_ABS_GEQ_TWO

public static final int GLU_TESS_WINDING_ABS_GEQ_TWO
See Also:
Constant Field Values

GLU_TESS_MAX_COORD

public static final double GLU_TESS_MAX_COORD
See Also:
Constant Field Values
Constructor Detail

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 Detail

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.

Throws:
GLException

gluErrorString

public String gluErrorString(int errorCode)

gluCheckExtension

public boolean gluCheckExtension(String extName,
                                 String extString)

gluGetString

public String gluGetString(int name)

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:

Whether or not a GLU function is available is determined as follows: 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).

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.
See Also:
gluTessBeginPolygon, gluDeleteTess, gluTessCallback

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.
See Also:
gluBeginPolygon, gluNewTess, gluTessCallback

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


GLU_TESS_BOUNDARY_ONLY
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.
See Also:
gluGetTessProperty, gluNewTess

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.
See Also:
gluNewTess, gluTessProperty

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.
See Also:
gluTessBeginPolygon, gluTessEndPolygon

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

         void begin(int type);

GLU_TESS_BEGIN_DATA

         void beginData(int type, Object polygonData);
GLU_TESS_EDGE_FLAG
         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_COMBINE_DATA
         void combineData(double[] coords, Object[] data,
                              float[] weight, Object[] outData,
                              Object polygonData);
GLU_TESS_ERROR
         void error(int errnum);
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.
See Also:
glBegin, glEdgeFlag, glVertex3f, gluNewTess, gluErrorString, gluTessVertex, gluTessBeginPolygon, gluTessBeginContour, gluTessProperty, gluTessNormal

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).
See Also:
gluTessBeginPolygon, gluNewTess, gluTessBeginContour, gluTessCallback, gluTessProperty, gluTessNormal, gluTessEndPolygon

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.
See Also:
gluNewTess, gluTessBeginContour, gluTessVertex, gluTessCallback, gluTessProperty, gluTessNormal, gluTessEndPolygon

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).
See Also:
gluNewTess, gluTessBeginPolygon, gluTessVertex, gluTessCallback, gluTessProperty, gluTessNormal, gluTessEndPolygon

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).
See Also:
gluNewTess, gluTessBeginPolygon, gluTessVertex, gluTessCallback, gluTessProperty, gluTessNormal, gluTessEndPolygon

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).
See Also:
gluNewTess, gluTessBeginContour, gluTessVertex, gluTessCallback, gluTessProperty, gluTessNormal, gluTessBeginPolygon

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).
See Also:
gluNewTess, gluNextContour, gluTessCallback, gluTessVertex, gluTessBeginPolygon, gluTessBeginContour

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

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.
See Also:
gluNewTess, gluTessBeginContour, gluTessBeginPolygon, gluTessCallback, gluTessEndContour, gluTessVertex

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).
See Also:
gluNewTess, gluNextContour, gluTessCallback, gluTessVertex, gluTessBeginPolygon, gluTessBeginContour

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);


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);


gluNewQuadric

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


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);


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);


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);


gluOrtho2D

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

gluPerspective

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

gluLookAt

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

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.


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.


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.


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.


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.


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.


gluPickMatrix

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

gluPickMatrix

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

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);


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);



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