Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
javax.media.opengl.glu.GLU
public class GLU
extends Object
Field Summary | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static double | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static int | |
static String | |
static String |
Constructor Summary | |
|
Method Summary | |
static GL |
|
void |
|
void |
|
void |
|
int |
|
int |
|
int |
|
int |
|
int |
|
int |
|
boolean |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
String |
|
String |
|
void |
|
void |
|
GLUnurbs |
|
GLUquadric |
|
GLUtessellator |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
boolean |
|
boolean |
|
void |
|
void |
|
void |
|
void |
|
int |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
boolean |
|
boolean |
|
boolean |
|
boolean |
|
boolean |
|
public static final int GLU_BEGIN
- Field Value:
- 100100
public static final int GLU_CCW
- Field Value:
- 100121
public static final int GLU_CW
- Field Value:
- 100120
public static final int GLU_EDGE_FLAG
- Field Value:
- 100104
public static final int GLU_END
- Field Value:
- 100102
public static final int GLU_ERROR
- Field Value:
- 100103
public static final int GLU_EXTENSIONS
- Field Value:
- 100801
public static final int GLU_EXTERIOR
- Field Value:
- 100123
public static final int GLU_FALSE
- Field Value:
- 0
public static final int GLU_FILL
- Field Value:
- 100012
public static final int GLU_FLAT
- Field Value:
- 100001
public static final int GLU_INSIDE
- Field Value:
- 100021
public static final int GLU_INTERIOR
- Field Value:
- 100122
public static final int GLU_INVALID_ENUM
- Field Value:
- 100900
public static final int GLU_INVALID_OPERATION
- Field Value:
- 100904
public static final int GLU_INVALID_VALUE
- Field Value:
- 100901
public static final int GLU_LINE
- Field Value:
- 100011
public static final int GLU_NONE
- Field Value:
- 100002
public static final int GLU_OUTSIDE
- Field Value:
- 100020
public static final int GLU_OUT_OF_MEMORY
- Field Value:
- 100902
public static final int GLU_POINT
- Field Value:
- 100010
public static final int GLU_SILHOUETTE
- Field Value:
- 100013
public static final int GLU_SMOOTH
- Field Value:
- 100000
public static final int GLU_TESS_BEGIN
- Field Value:
- 100100
public static final int GLU_TESS_BEGIN_DATA
- Field Value:
- 100106
public static final int GLU_TESS_BOUNDARY_ONLY
- Field Value:
- 100141
public static final int GLU_TESS_COMBINE
- Field Value:
- 100105
public static final int GLU_TESS_COMBINE_DATA
- Field Value:
- 100111
public static final int GLU_TESS_COORD_TOO_LARGE
- Field Value:
- 100155
public static final int GLU_TESS_EDGE_FLAG
- Field Value:
- 100104
public static final int GLU_TESS_EDGE_FLAG_DATA
- Field Value:
- 100110
public static final int GLU_TESS_END
- Field Value:
- 100102
public static final int GLU_TESS_END_DATA
- Field Value:
- 100108
public static final int GLU_TESS_ERROR
- Field Value:
- 100103
public static final int GLU_TESS_ERROR1
- Field Value:
- 100151
public static final int GLU_TESS_ERROR2
- Field Value:
- 100152
public static final int GLU_TESS_ERROR3
- Field Value:
- 100153
public static final int GLU_TESS_ERROR4
- Field Value:
- 100154
public static final int GLU_TESS_ERROR5
- Field Value:
- 100155
public static final int GLU_TESS_ERROR6
- Field Value:
- 100156
public static final int GLU_TESS_ERROR7
- Field Value:
- 100157
public static final int GLU_TESS_ERROR8
- Field Value:
- 100158
public static final int GLU_TESS_ERROR_DATA
- Field Value:
- 100109
public static final double GLU_TESS_MAX_COORD
- Field Value:
- 2.147483647E9
public static final int GLU_TESS_MISSING_BEGIN_CONTOUR
- Field Value:
- 100152
public static final int GLU_TESS_MISSING_BEGIN_POLYGON
- Field Value:
- 100151
public static final int GLU_TESS_MISSING_END_CONTOUR
- Field Value:
- 100154
public static final int GLU_TESS_MISSING_END_POLYGON
- Field Value:
- 100153
public static final int GLU_TESS_NEED_COMBINE_CALLBACK
- Field Value:
- 100156
public static final int GLU_TESS_TOLERANCE
- Field Value:
- 100142
public static final int GLU_TESS_VERTEX
- Field Value:
- 100101
public static final int GLU_TESS_VERTEX_DATA
- Field Value:
- 100107
public static final int GLU_TESS_WINDING_ABS_GEQ_TWO
- Field Value:
- 100134
public static final int GLU_TESS_WINDING_NEGATIVE
- Field Value:
- 100133
public static final int GLU_TESS_WINDING_NONZERO
- Field Value:
- 100131
public static final int GLU_TESS_WINDING_ODD
- Field Value:
- 100130
public static final int GLU_TESS_WINDING_POSITIVE
- Field Value:
- 100132
public static final int GLU_TESS_WINDING_RULE
- Field Value:
- 100140
public static final int GLU_TRUE
- Field Value:
- 1
public static final int GLU_UNKNOWN
- Field Value:
- 100124
public static final int GLU_VERSION
- Field Value:
- 100800
public static final int GLU_VERTEX
- Field Value:
- 100101
public static final String extensionString
public static final String versionString
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.
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.
public void gluBeginCurve(GLUnurbs r)
Begins a curve definition.
- Parameters:
r
- GLUnurbs object to specify curve to
public void gluBeginPolygon(GLUtessellator tessellator)
gluBeginPolygon andgluEndPolygon
delimit the definition of a nonconvex polygon. To define such a polygon, first call gluBeginPolygon. Then define the contours of the polygon by callinggluTessVertex
for each vertex andgluNextContour
to start each new contour. Finally, callgluEndPolygon
to signal the end of the definition. See thegluTessVertex
andgluNextContour
reference pages for more details. OncegluEndPolygon
is called, the polygon is tessellated, and the resulting triangles are described through callbacks. SeegluTessCallback
for descriptions of the callback methods.
- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).
public void gluBeginSurface(GLUnurbs r)
Begins a surface definition.
- Parameters:
r
- GLUnurbs object to specify surface to
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);
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);
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);
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);
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);
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);
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);
public void gluDeleteQuadric(GLUquadric quad)
Interface to C language function:
void gluDeleteQuadric(GLUquadric * quad);
public void gluDeleteTess(GLUtessellator tessellator)
gluDeleteTess destroys the indicated tessellation object (which was created withgluNewTess
).
- Parameters:
tessellator
- Specifies the tessellation object to destroy.
- See Also:
gluBeginPolygon
,gluNewTess
,gluTessCallback
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);
public void gluEndCurve(GLUnurbs r)
Ends a curve definition.
- Parameters:
r
- GLUnurbs object holding the curve
public void gluEndPolygon(GLUtessellator tessellator)
gluEndPolygon andgluBeginPolygon
delimit the definition of a nonconvex polygon. To define such a polygon, first callgluBeginPolygon
. Then define the contours of the polygon by callinggluTessVertex
for each vertex andgluNextContour
to start each new contour. Finally, call gluEndPolygon to signal the end of the definition. See thegluTessVertex
andgluNextContour
reference pages for more details. Once gluEndPolygon is called, the polygon is tessellated, and the resulting triangles are described through callbacks. SeegluTessCallback
for descriptions of the callback methods.
- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).
public void gluEndSurface(GLUnurbs r)
Ends a surface.
- Parameters:
r
- GLUnurbs object holding surface
public String gluErrorString(int errorCode)
public String gluGetString(int name)
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 thegluTessProperty
reference page for information about the properties and what they do.
- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).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
public void gluLookAt(double eyeX, double eyeY, double eyeZ, double centerX, double centerY, double centerZ, double upX, double upY, double upZ)
public GLUnurbs gluNewNurbsRenderer()
Creates a new GLUnurbs object.
- Returns:
- GLUnurbs object
public GLUquadric gluNewQuadric()
Interface to C language function:
GLUquadric * gluNewQuadric(void);
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
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 ofgluTessVertex
calls, a gluNextContour call indicates that the previous contour is complete and that the next contour is about to begin. Perform another series ofgluTessVertex
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_EXTERIORGLU_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.Note:gluNextContourgluNextContour
gluTessEndContour
gluTessBeginContour
- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).type
- The type of the contour being defined.
public void gluNurbsCurve(GLUnurbs r, int nknots, float[] knot, int stride, float[] ctlarray, int order, int type)
Make a NURBS curve.
- Parameters:
r
- GLUnurbs object holding the curvenknots
- number of knotsknot
- knot vectorstride
- number of control point coordinatesctlarray
- control pointsorder
- order of the curvetype
- curve type
public void gluNurbsProperty(GLUnurbs r, int property, float value)
Sets a property on a NURBS object. (NOTE: this function is not currently implemented.)
- Parameters:
r
- GLUnurbs object holding NURBS to which a property should be setproperty
- property idvalue
- property value
public void gluNurbsSurface(GLUnurbs r, int sknot_count, float[] sknot, int tknot_count, float[] tknot, int s_stride, int t_stride, float[] ctlarray, int sorder, int torder, int type)
Makes a NURBS surface.
- Parameters:
r
- GLUnurbs object holding the surfacesknot_count
- number of knots in s directionsknot
- knots in s directiontknot_count
- number of knots in t directiontknot
- knots in t directions_stride
- number of control points coordinates in s directiont_stride
- number of control points coordinates in t directionctlarray
- control pointssorder
- order of surface in s directiontorder
- order of surface in t directiontype
- surface type
public void gluOrtho2D(double left, double right, double bottom, double top)
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);
public void gluPerspective(double fovy, double aspect, double zNear, double zFar)
public void gluPickMatrix(double x, double y, double delX, double delY, int[] viewport, int viewport_offset)
public void gluPickMatrix(double x, double y, double delX, double delY, IntBuffer viewport)
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.
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.
public void gluQuadricDrawStyle(GLUquadric quad, int draw)
Interface to C language function:
void gluQuadricDrawStyle(GLUquadric * quad, GLenum draw);
public void gluQuadricNormals(GLUquadric quad, int normal)
Interface to C language function:
void gluQuadricNormals(GLUquadric * quad, GLenum normal);
public void gluQuadricOrientation(GLUquadric quad, int orientation)
Interface to C language function:
void gluQuadricOrientation(GLUquadric * quad, GLenum orientation);
public void gluQuadricTexture(GLUquadric quad, boolean texture)
Interface to C language function:
void gluQuadricTexture(GLUquadric * quad, GLboolean texture);
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);
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);
public void gluTessBeginContour(GLUtessellator tessellator)
gluTessBeginContour andgluTessEndContour
delimit the definition of a polygon contour. Within each gluTessBeginContour/gluTessEndContour
pair, there can be zero or more calls togluTessVertex
. The vertices specify a closed contour (the last vertex of each contour is automatically linked to the first). See thegluTessVertex
reference page for more details. gluTessBeginContour can only be called betweengluTessBeginPolygon
andgluTessEndPolygon
.
- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).
public void gluTessBeginPolygon(GLUtessellator tessellator, Object data)
gluTessBeginPolygon andgluTessEndPolygon
delimit the definition of a convex, concave or self-intersecting polygon. Within each gluTessBeginPolygon/gluTessEndPolygon
pair, there must be one or more calls togluTessBeginContour
/gluTessEndContour
. Within each contour, there are zero or more calls togluTessVertex
. The vertices specify a closed contour (the last vertex of each contour is automatically linked to the first). See thegluTessVertex
,gluTessBeginContour
, andgluTessEndContour
reference pages for more details. data is a reference to a user-defined data structure. If the appropriate callback(s) are specified (seegluTessCallback
), then this reference is returned to the callback method(s). Thus, it is a convenient way to store per-polygon information. OncegluTessEndPolygon
is called, the polygon is tessellated, and the resulting triangles are described through callbacks. SeegluTessCallback
for descriptions of the callback methods.
- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).data
- Specifies a reference to user polygon data.
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 whengluTessBeginPolygon
was called. The legal callbacks are as follows: GLU_TESS_BEGIN
glBegin
GLU_TESS_BOUNDARY_ONLYGL_FALSEGL_TRIANGLE_FANGL_TRIANGLE_STRIPGL_TRIANGLESGLU_TESS_BOUNDARY_ONLYGL_TRUEGL_LINE_LOOPvoid begin(int type);GLU_TESS_BEGIN_DATAGLU_TESS_BEGIN
gluTessBeginPolygon
void beginData(int type, Object polygonData);GLU_TESS_EDGE_FLAG
glEdgeFlag
GL_TRUEGL_FALSEGL_TRIANGLE_FANGL_TRIANGLE_STRIPvoid edgeFlag(boolean boundaryEdge);GLU_TESS_EDGE_FLAG_DATAGLU_TESS_EDGE_FLAG
gluTessBeginPolygon
void edgeFlagData(boolean boundaryEdge, Object polygonData);GLU_TESS_VERTEXvoid vertex(Object vertexData);GLU_TESS_VERTEX_DATAGLU_TESS_VERTEX
gluTessBeginPolygon
void vertexData(Object vertexData, Object polygonData);GLU_TESS_ENDvoid end();GLU_TESS_END_DATAGLU_TESS_END
gluTessBeginPolygon
void endData(Object polygonData);GLU_TESS_COMBINE
void combine(double[] coords, Object[] data, float[] weight, Object[] outData);dataweightcoordsdataweightoutData
gluTessEndPolygon
GLU_TESS_COMBINEvoid 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_DATAGLU_TESS_COMBINE
gluTessBeginPolygon
void combineData(double[] coords, Object[] data, float[] weight, Object[] outData, Object polygonData);GLU_TESS_ERRORGLU_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_MEMORY
gluErrorString
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_DATAvoid errorData(int errnum, Object polygonData);
- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).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.
public void gluTessEndContour(GLUtessellator tessellator)
gluTessEndContour andgluTessBeginContour
delimit the definition of a polygon contour. Within eachgluTessBeginContour
/ gluTessEndContour pair, there can be zero or more calls togluTessVertex
. The vertices specify a closed contour (the last vertex of each contour is automatically linked to the first). See thegluTessVertex
reference page for more details.gluTessBeginContour
can only be called betweengluTessBeginPolygon
andgluTessEndPolygon
.
- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).
public void gluTessEndPolygon(GLUtessellator tessellator)
gluTessEndPolygon andgluTessBeginPolygon
delimit the definition of a convex, concave or self-intersecting polygon. Within eachgluTessBeginPolygon
/gluTessEndPolygon pair, there must be one or more calls togluTessBeginContour
/gluTessEndContour
. Within each contour, there are zero or more calls togluTessVertex
. The vertices specify a closed contour (the last vertex of each contour is automatically linked to the first). See thegluTessVertex
,gluTessBeginContour
andgluTessEndContour
reference pages for more details. Once gluTessEndPolygon is called, the polygon is tessellated, and the resulting triangles are described through callbacks. SeegluTessCallback
for descriptions of the callback functions.
- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).
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 bygluNewTess
).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
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_RULEvalue
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_ONLYGLU_TESS_BEGINGLU_TESS_BEGIN_DATA
GLU_TESS_TOLERANCE
- Parameters:
tessellator
- Specifies the tessellation object created withgluNewTess
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
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 betweengluTessBeginContour
andgluTessEndContour
. 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 thegluTessCallback
reference page).
- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).coords
- Specifies the coordinates of the vertex.data
- Specifies an opaque reference passed back to the program with the vertex callback (as specified bygluTessCallback
).
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.
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.
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.
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.
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:
- 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.Finally,
- 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
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 seeGLEventListener.displayChanged(GLAutoDrawable,boolean,boolean)
.
- Parameters:
gluFunctionName
- the name of the OpenGL function (e.g., use "gluNurbsCallbackDataEXT" to check if thegluNurbsCallbackDataEXT(GLUnurbs, GLvoid)
extension is available).