Class GLU
- java.lang.Object
-
- com.jogamp.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
-
Constructor Summary
Constructors Constructor Description GLU()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static GLU
createGLU()
Instantiates a GLU implementation object in respect to the given GL profile of this thread current GL.static GLU
createGLU(GL gl)
Instantiates a GLU implementation object in respect to the given GL profile of the given GL.static GL
getCurrentGL()
static void
gluBeginPolygon(GLUtessellator tessellator)
gluBeginPolygon andgluEndPolygon
delimit the definition of a nonconvex polygon.int
gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int userLevel, int baseLevel, int maxLevel, Buffer data)
Optional, throws GLException if not available in profileint
gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, Buffer data)
Optional, throws GLException if not available in profileint
gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int userLevel, int baseLevel, int maxLevel, Buffer data)
Optional, throws GLException if not available in profileint
gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, Buffer data)
Optional, throws GLException if not available in profileint
gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int userLevel, int baseLevel, int maxLevel, Buffer data)
Optional, throws GLException if not available in profileint
gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, Buffer data)
Optional, throws GLException if not available in profileboolean
gluCheckExtension(String extName, String extString)
void
gluCylinder(GLUquadric quad, double base, double top, double height, int slices, int stacks)
Option (throws GLException if not available in profile).void
gluDeleteQuadric(GLUquadric quad)
Option (throws GLException if not available in profile).static void
gluDeleteTess(GLUtessellator tessellator)
gluDeleteTess destroys the indicated tessellation object (which was created withgluNewTess
).void
gluDisk(GLUquadric quad, double inner, double outer, int slices, int loops)
Option (throws GLException if not available in profile).static void
gluEndPolygon(GLUtessellator tessellator)
gluEndPolygon andgluBeginPolygon
delimit the definition of a nonconvex polygon.String
gluErrorString(int errorCode)
String
gluGetString(int name)
static 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)
void
gluLookAt(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ)
GLUquadric
gluNewQuadric()
Option (throws GLException if not available in profile).GLUquadric
gluNewQuadric(boolean useGLSL, int shaderProgram)
GLUquadric
gluNewQuadric(boolean useGLSL, ShaderState st)
static GLUtessellator
gluNewTess()
gluNewTess creates and returns a new tessellation object.static 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
gluOrtho2D(float left, float right, float bottom, float top)
void
gluPartialDisk(GLUquadric quad, double inner, double outer, int slices, int loops, double start, double sweep)
Option (throws GLException if not available in profile).void
gluPerspective(double fovy, double aspect, double zNear, double zFar)
void
gluPerspective(float fovy, float aspect, float zNear, float 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)
void
gluPickMatrix(float x, float y, float delX, float delY, int[] viewport, int viewport_offset)
void
gluPickMatrix(float x, float y, float delX, float 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(float objX, float objY, float objZ, float[] model, int model_offset, float[] proj, int proj_offset, int[] view, int view_offset, float[] 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(float objX, float objY, float objZ, FloatBuffer model, FloatBuffer proj, IntBuffer view, FloatBuffer 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)
Option (throws GLException if not available in profile).void
gluQuadricNormals(GLUquadric quad, int normal)
Option (throws GLException if not available in profile).void
gluQuadricOrientation(GLUquadric quad, int orientation)
Option (throws GLException if not available in profile).void
gluQuadricTexture(GLUquadric quad, boolean texture)
Option (throws GLException if not available in profile).int
gluScaleImage(int format, int widthin, int heightin, int typein, Buffer datain, int widthout, int heightout, int typeout, Buffer dataout)
Optional, throws GLException if not available in profilevoid
gluSphere(GLUquadric quad, double radius, int slices, int stacks)
Option (throws GLException if not available in profile).static void
gluTessBeginContour(GLUtessellator tessellator)
gluTessBeginContour andgluTessEndContour
delimit the definition of a polygon contour.static void
gluTessBeginPolygon(GLUtessellator tessellator, Object data)
gluTessBeginPolygon andgluTessEndPolygon
delimit the definition of a convex, concave or self-intersecting polygon.static void
gluTessCallback(GLUtessellator tessellator, int which, GLUtessellatorCallback aCallback)
gluTessCallback is used to indicate a callback to be used by a tessellation object.static void
gluTessEndContour(GLUtessellator tessellator)
gluTessEndContour andgluTessBeginContour
delimit the definition of a polygon contour.static void
gluTessEndPolygon(GLUtessellator tessellator)
gluTessEndPolygon andgluTessBeginPolygon
delimit the definition of a convex, concave or self-intersecting polygon.static void
gluTessNormal(GLUtessellator tessellator, double x, double y, double z)
gluTessNormal describes a normal for a polygon that the program is defining.static void
gluTessProperty(GLUtessellator tessellator, int which, double value)
gluTessProperty is used to control properites stored in a tessellation object.static 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(float winX, float winY, float winZ, float[] model, int model_offset, float[] proj, int proj_offset, int[] view, int view_offset, float[] 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(float winX, float winY, float winZ, FloatBuffer model, FloatBuffer proj, IntBuffer view, FloatBuffer 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(float winX, float winY, float winZ, float clipW, float[] model, int model_offset, float[] proj, int proj_offset, int[] view, int view_offset, float nearVal, float farVal, float[] 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(float winX, float winY, float winZ, float clipW, FloatBuffer model, FloatBuffer proj, IntBuffer view, float nearVal, float farVal, FloatBuffer 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.
-
-
-
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_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_ERROR
public static final int GLU_ERROR
- 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_AVOID_DEGENERATE_TRIANGLES
public static final int GLU_TESS_AVOID_DEGENERATE_TRIANGLES
- 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
-
-
Method Detail
-
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.
- 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.
GLEventListener#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).
- If the function is a GLU core function (i.e., not an
extension),
-
createGLU
public static final GLU createGLU() throws GLException
Instantiates a GLU implementation object in respect to the given GL profile of this thread current GL.- Throws:
GLException
-
createGLU
public static final GLU createGLU(GL gl) throws GLException
Instantiates a GLU implementation object in respect to the given GL profile of the given GL.- Throws:
GLException
-
getCurrentGL
public static final GL getCurrentGL() throws GLException
- Throws:
GLException
-
gluErrorString
public final String gluErrorString(int errorCode)
-
gluGetString
public final String gluGetString(int name)
-
gluNewTess
public static final 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. Optional, throws GLException if not available in profile- Returns:
- A new tessellation object.
- See Also:
gluTessBeginPolygon
,gluDeleteTess
,gluTessCallback
-
gluDeleteTess
public static final void gluDeleteTess(GLUtessellator tessellator)
gluDeleteTess destroys the indicated tessellation object (which was created withgluNewTess
). Optional, throws GLException if not available in profile- Parameters:
tessellator
- Specifies the tessellation object to destroy.- See Also:
gluBeginPolygon
,gluNewTess
,gluTessCallback
-
gluTessProperty
public static final 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:Optional, throws GLException if not available in profile GLU_TESS_WINDING_RULE
-
Determines which parts of the polygon are on the "interior".
value may be set to one of
GLU_TESS_WINDING_ODD,
GLU_TESS_WINDING_NONZERO,
GLU_TESS_WINDING_POSITIVE, or
GLU_TESS_WINDING_NEGATIVE, or
GLU_TESS_WINDING_ABS_GEQ_TWO.To understand how the winding rule works, consider that the input contours partition the plane into regions. The winding rule determines which of these regions are inside the polygon.
For a single contour C, the winding number of a point x is simply the signed number of revolutions we make around x as we travel once around C (where CCW is positive). When there are several contours, the individual winding numbers are summed. This procedure associates a signed integer value with each point x in the plane. Note that the winding number is the same for all points in a single region.
The winding rule classifies a region as "inside" if its winding number belongs to the chosen category (odd, nonzero, positive, negative, or absolute value of at least two). The previous GLU tessellator (prior to GLU 1.2) used the "odd" rule. The "nonzero" rule is another common way to define the interior. The other three rules are useful for polygon CSG operations.
GLU_TESS_BOUNDARY_ONLY-
Is a boolean value ("value" should be set to GL_TRUE or GL_FALSE). When
set to GL_TRUE, a set of closed contours separating the polygon interior
and exterior are returned instead of a tessellation. Exterior contours
are oriented CCW with respect to the normal; interior contours are
oriented CW. The GLU_TESS_BEGIN and GLU_TESS_BEGIN_DATA
callbacks use the type GL_LINE_LOOP for each contour.
GLU_TESS_TOLERANCE-
Specifies a tolerance for merging features to reduce the size of the
output. For example, two vertices that are very close to each other
might be replaced by a single vertex. The tolerance is multiplied by the
largest coordinate magnitude of any input vertex; this specifies the
maximum distance that any feature can move as the result of a single
merge operation. If a single feature takes part in several merge
operations, the toal distance moved could be larger.
Feature merging is completely optional; the tolerance is only a hint. The implementation is free to merge in some cases and not in others, or to never merge features at all. The initial tolerance is 0.
The current implementation merges vertices only if they are exactly coincident, regardless of the current tolerance. A vertex is spliced into an edge only if the implementation is unable to distinguish which side of the edge the vertex lies on. Two edges are merged only when both endpoints are identical.
- 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
-
gluGetTessProperty
public static final 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. Optional, throws GLException if not available in profile- 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
-
gluTessNormal
public static final 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. Optional, throws GLException if not available in profile
- 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
-
gluTessCallback
public static final 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.Optional, throws GLException if not available in profile 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
-
The begin callback is invoked like
glBegin
to indicate the start of a (triangle) primitive. The method takes a single argument of type int. If the GLU_TESS_BOUNDARY_ONLY property is set to GL_FALSE, then the argument is set to either GL_TRIANGLE_FAN, GL_TRIANGLE_STRIP, or GL_TRIANGLES. If the GLU_TESS_BOUNDARY_ONLY property is set to GL_TRUE, then the argument will be set to GL_LINE_LOOP. The method prototype for this callback is:void begin(int type);
GLU_TESS_BEGIN_DATA
-
The same as the GLU_TESS_BEGIN callback except
that it takes an additional reference argument. This reference is
identical to the opaque reference provided when
gluTessBeginPolygon
was called. The method prototype for this callback is:void beginData(int type, Object polygonData);
GLU_TESS_EDGE_FLAG-
The edge flag callback is similar to
glEdgeFlag
. The method takes a single boolean boundaryEdge that indicates which edges lie on the polygon boundary. If the boundaryEdge is GL_TRUE, then each vertex that follows begins an edge that lies on the polygon boundary, that is, an edge that separates an interior region from an exterior one. If the boundaryEdge is GL_FALSE, then each vertex that follows begins an edge that lies in the polygon interior. The edge flag callback (if defined) is invoked before the first vertex callback.Since triangle fans and triangle strips do not support edge flags, the begin callback is not called with GL_TRIANGLE_FAN or GL_TRIANGLE_STRIP if a non-null edge flag callback is provided. (If the callback is initialized to null, there is no impact on performance). Instead, the fans and strips are converted to independent triangles. The method prototype for this callback is:
void edgeFlag(boolean boundaryEdge);
GLU_TESS_EDGE_FLAG_DATA-
The same as the GLU_TESS_EDGE_FLAG callback except that it takes
an additional reference argument. This reference is identical to the
opaque reference provided when
gluTessBeginPolygon
was called. The method prototype for this callback is:void edgeFlagData(boolean boundaryEdge, Object polygonData);
GLU_TESS_VERTEX-
The vertex callback is invoked between the begin and end callbacks. It is
similar to
glVertex3f
, and it defines the vertices of the triangles created by the tessellation process. The method takes a reference as its only argument. This reference is identical to the opaque reference provided by the user when the vertex was described (seegluTessVertex
). The method prototype for this callback is:void vertex(Object vertexData);
GLU_TESS_VERTEX_DATA-
The same as the GLU_TESS_VERTEX callback except that it takes an
additional reference argument. This reference is identical to the opaque
reference provided when
gluTessBeginPolygon
was called. The method prototype for this callback is:void vertexData(Object vertexData, Object polygonData);
GLU_TESS_END-
The end callback serves the same purpose as
glEnd
. It indicates the end of a primitive and it takes no arguments. The method prototype for this callback is:void end();
GLU_TESS_END_DATA-
The same as the GLU_TESS_END callback except that it takes an
additional reference argument. This reference is identical to the opaque
reference provided when
gluTessBeginPolygon
was called. The method prototype for this callback is:void endData(Object polygonData);
GLU_TESS_COMBINE-
The combine callback is called to create a new vertex when the
tessellation detects an intersection, or wishes to merge features. The
method takes four arguments: an array of three elements each of type
double, an array of four references, an array of four elements each of
type float, and a reference to a reference. The prototype is:
void combine(double[] coords, Object[] data, float[] weight, Object[] outData);
-
The vertex is defined as a linear combination of up to four existing
vertices, stored in data. The coefficients of the linear
combination are given by weight; these weights always add up to 1.
All vertex pointers are valid even when some of the weights are 0.
coords gives the location of the new vertex.
The user must allocate another vertex, interpolate parameters using data and weight, and return the new vertex pointer in outData. This handle is supplied during rendering callbacks. The user is responsible for freeing the memory some time after
gluTessEndPolygon
is called.For example, if the polygon lies in an arbitrary plane in 3-space, and a color is associated with each vertex, the GLU_TESS_COMBINE callback might look like this:
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; }
-
If the tessellation detects an intersection, then the
GLU_TESS_COMBINE or GLU_TESS_COMBINE_DATA callback (see
below) must be defined, and it must write a non-null reference into
outData. Otherwise the GLU_TESS_NEED_COMBINE_CALLBACK error
occurs, and no output is generated.
-
The same as the GLU_TESS_COMBINE callback except that it takes an
additional reference argument. This reference is identical to the opaque
reference provided when
gluTessBeginPolygon
was called. The method prototype for this callback is:void combineData(double[] coords, Object[] data, float[] weight, Object[] outData, Object polygonData);
GLU_TESS_ERROR-
The error callback is called when an error is encountered. The one
argument is of type int; it indicates the specific error that occurred
and will be set to one of GLU_TESS_MISSING_BEGIN_POLYGON,
GLU_TESS_MISSING_END_POLYGON,
GLU_TESS_MISSING_BEGIN_CONTOUR,
GLU_TESS_MISSING_END_CONTOUR, GLU_TESS_COORD_TOO_LARGE,
GLU_TESS_NEED_COMBINE_CALLBACK or GLU_OUT_OF_MEMORY.
Character strings describing these errors can be retrieved with the
gluErrorString
call. The method prototype for this callback is:void error(int errnum);
-
The GLU library will recover from the first four errors by inserting the
missing call(s). GLU_TESS_COORD_TOO_LARGE indicates that some
vertex coordinate exceeded the predefined constant
GLU_TESS_MAX_COORD in absolute value, and that the value has been
clamped. (Coordinate values must be small enough so that two can be
multiplied together without overflow.)
GLU_TESS_NEED_COMBINE_CALLBACK indicates that the tessellation
detected an intersection between two edges in the input data, and the
GLU_TESS_COMBINE or GLU_TESS_COMBINE_DATA callback was not
provided. No output is generated. GLU_OUT_OF_MEMORY indicates that
there is not enough memory so no output is generated.
-
The same as the GLU_TESS_ERROR callback except that it takes an
additional reference argument. This reference is identical to the opaque
reference provided when
gluTessBeginPolygon
was called. The method prototype for this callback is:void 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.- See Also:
glBegin
,glEdgeFlag
,glVertex3f
,gluNewTess
,gluErrorString
,gluTessVertex
,gluTessBeginPolygon
,gluTessBeginContour
,gluTessProperty
,gluTessNormal
-
gluTessVertex
public static final 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
.Optional, throws GLException if not available in profile 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 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
).- See Also:
gluTessBeginPolygon
,gluNewTess
,gluTessBeginContour
,gluTessCallback
,gluTessProperty
,gluTessNormal
,gluTessEndPolygon
-
gluTessBeginPolygon
public static final 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.Optional, throws GLException if not available in profile 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. SeegluTessCallback
for descriptions of the callback methods.- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).data
- Specifies a reference to user polygon data.- See Also:
gluNewTess
,gluTessBeginContour
,gluTessVertex
,gluTessCallback
,gluTessProperty
,gluTessNormal
,gluTessEndPolygon
-
gluTessBeginContour
public static final 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
. Optional, throws GLException if not available in profile- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).- See Also:
gluNewTess
,gluTessBeginPolygon
,gluTessVertex
,gluTessCallback
,gluTessProperty
,gluTessNormal
,gluTessEndPolygon
-
gluTessEndContour
public static final 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
. Optional, throws GLException if not available in profile- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).- See Also:
gluNewTess
,gluTessBeginPolygon
,gluTessVertex
,gluTessCallback
,gluTessProperty
,gluTessNormal
,gluTessEndPolygon
-
gluTessEndPolygon
public static final 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.Optional, throws GLException if not available in profile 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 withgluNewTess
).- See Also:
gluNewTess
,gluTessBeginContour
,gluTessVertex
,gluTessCallback
,gluTessProperty
,gluTessNormal
,gluTessBeginPolygon
-
gluBeginPolygon
public static final 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.Optional, throws GLException if not available in profile 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
).- See Also:
gluNewTess
,gluNextContour
,gluTessCallback
,gluTessVertex
,gluTessBeginPolygon
,gluTessBeginContour
-
gluNextContour
public static final 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.Optional, throws GLException if not available in profile The type parameter defines what type of contour follows. The following values are valid.
GLU_EXTERIOR
-
An exterior contour defines an exterior boundary of the polygon.
-
An interior contour defines an interior boundary of the polygon (such as
a hole).
-
An unknown contour is analyzed by the library to determine whether it is
interior or exterior.
-
The first GLU_CCW or GLU_CW contour defined is considered
to be exterior. All other contours are considered to be exterior if they
are oriented in the same direction (clockwise or counterclockwise) as the
first contour, and interior if they are not. If one contour is of type
GLU_CCW or GLU_CW, then all contours must be of the same
type (if they are not, then all GLU_CCW and GLU_CW contours
will be changed to GLU_UNKNOWN). Note that there is no
real difference between the GLU_CCW and GLU_CW contour
types.
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: The gluNextContour function is obsolete and is
provided for backward compatibility only. The gluNextContour
function is mapped to
gluTessEndContour
followed bygluTessBeginContour
.- Parameters:
tessellator
- Specifies the tessellation object (created withgluNewTess
).type
- The type of the contour being defined.- See Also:
gluNewTess
,gluTessBeginContour
,gluTessBeginPolygon
,gluTessCallback
,gluTessEndContour
,gluTessVertex
-
gluEndPolygon
public static final 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.Optional, throws GLException if not available in profile 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 withgluNewTess
).- See Also:
gluNewTess
,gluNextContour
,gluTessCallback
,gluTessVertex
,gluTessBeginPolygon
,gluTessBeginContour
-
gluCylinder
public final void gluCylinder(GLUquadric quad, double base, double top, double height, int slices, int stacks)
Option (throws GLException if not available in profile).
Interface to C language function:
void gluCylinder(GLUquadric * quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);
-
gluDeleteQuadric
public final void gluDeleteQuadric(GLUquadric quad)
Option (throws GLException if not available in profile).
Interface to C language function:
void gluDeleteQuadric(GLUquadric * quad);
-
gluDisk
public final void gluDisk(GLUquadric quad, double inner, double outer, int slices, int loops)
Option (throws GLException if not available in profile).
Interface to C language function:
void gluDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);
-
gluNewQuadric
public final GLUquadric gluNewQuadric()
Option (throws GLException if not available in profile).
Interface to C language function:
GLUquadric * gluNewQuadric(void);
-
gluNewQuadric
public final GLUquadric gluNewQuadric(boolean useGLSL, ShaderState st)
-
gluNewQuadric
public final GLUquadric gluNewQuadric(boolean useGLSL, int shaderProgram)
-
gluPartialDisk
public final void gluPartialDisk(GLUquadric quad, double inner, double outer, int slices, int loops, double start, double sweep)
Option (throws GLException if not available in profile).
Interface to C language function:
void gluPartialDisk(GLUquadric * quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);
-
gluQuadricDrawStyle
public final void gluQuadricDrawStyle(GLUquadric quad, int draw)
Option (throws GLException if not available in profile).
Interface to C language function:
void gluQuadricDrawStyle(GLUquadric * quad, GLenum draw);
-
gluQuadricNormals
public final void gluQuadricNormals(GLUquadric quad, int normal)
Option (throws GLException if not available in profile).
Interface to C language function:
void gluQuadricNormals(GLUquadric * quad, GLenum normal);
-
gluQuadricOrientation
public final void gluQuadricOrientation(GLUquadric quad, int orientation)
Option (throws GLException if not available in profile).
Interface to C language function:
void gluQuadricOrientation(GLUquadric * quad, GLenum orientation);
-
gluQuadricTexture
public final void gluQuadricTexture(GLUquadric quad, boolean texture)
Option (throws GLException if not available in profile).
Interface to C language function:
void gluQuadricTexture(GLUquadric * quad, GLboolean texture);
-
gluSphere
public final void gluSphere(GLUquadric quad, double radius, int slices, int stacks)
Option (throws GLException if not available in profile).
Interface to C language function:
void gluSphere(GLUquadric * quad, GLdouble radius, GLint slices, GLint stacks);
-
gluOrtho2D
public void gluOrtho2D(float left, float right, float bottom, float top)
-
gluPerspective
public void gluPerspective(float fovy, float aspect, float zNear, float zFar)
-
gluLookAt
public void gluLookAt(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ)
-
gluProject
public boolean gluProject(float objX, float objY, float objZ, float[] model, int model_offset, float[] proj, int proj_offset, int[] view, int view_offset, float[] 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(float objX, float objY, float objZ, FloatBuffer model, FloatBuffer proj, IntBuffer view, FloatBuffer 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(float winX, float winY, float winZ, float[] model, int model_offset, float[] proj, int proj_offset, int[] view, int view_offset, float[] 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(float winX, float winY, float winZ, FloatBuffer model, FloatBuffer proj, IntBuffer view, FloatBuffer 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(float winX, float winY, float winZ, float clipW, float[] model, int model_offset, float[] proj, int proj_offset, int[] view, int view_offset, float nearVal, float farVal, float[] 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(float winX, float winY, float winZ, float clipW, FloatBuffer model, FloatBuffer proj, IntBuffer view, float nearVal, float farVal, FloatBuffer 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(float x, float y, float delX, float delY, int[] viewport, int viewport_offset)
-
gluPickMatrix
public void gluPickMatrix(float x, float y, float delX, float delY, IntBuffer viewport)
-
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.
-
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, 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.
-
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)
-
gluScaleImage
public int gluScaleImage(int format, int widthin, int heightin, int typein, Buffer datain, int widthout, int heightout, int typeout, Buffer dataout)
Optional, throws GLException if not available in profile
-
gluBuild1DMipmapLevels
public int gluBuild1DMipmapLevels(int target, int internalFormat, int width, int format, int type, int userLevel, int baseLevel, int maxLevel, Buffer data)
Optional, throws GLException if not available in profile
-
gluBuild1DMipmaps
public int gluBuild1DMipmaps(int target, int internalFormat, int width, int format, int type, Buffer data)
Optional, throws GLException if not available in profile
-
gluBuild2DMipmapLevels
public int gluBuild2DMipmapLevels(int target, int internalFormat, int width, int height, int format, int type, int userLevel, int baseLevel, int maxLevel, Buffer data)
Optional, throws GLException if not available in profile
-
gluBuild2DMipmaps
public int gluBuild2DMipmaps(int target, int internalFormat, int width, int height, int format, int type, Buffer data)
Optional, throws GLException if not available in profile
-
gluBuild3DMipmapLevels
public int gluBuild3DMipmapLevels(int target, int internalFormat, int width, int height, int depth, int format, int type, int userLevel, int baseLevel, int maxLevel, Buffer data)
Optional, throws GLException if not available in profile
-
gluBuild3DMipmaps
public int gluBuild3DMipmaps(int target, int internalFormat, int width, int height, int depth, int format, int type, Buffer data)
Optional, throws GLException if not available in profile
-
-