gluProject

map object coordinates to window coordinates

Signature

gluProject( GLdouble ( objX ) , GLdouble ( objY ) , GLdouble ( objZ ) , const GLdouble * ( model ) , const GLdouble * ( proj ) , const GLint * ( view ) , GLdouble* ( winX ) , GLdouble* ( winY ) , GLdouble* ( winZ ) )-> GLint
gluProject( objX , objY , objZ , model , proj , view , winX , winY , winZ ) -> <class 'ctypes.c_int'>
Convenience wrapper for gluProject
    
    Automatically fills in the model, projection and viewing matrices
    if not provided.
    
    returns (winX,winY,winZ) doubles
    

Parameters

VariablesDescription
objX, objY, objZ
Specify the object coordinates.
model
Specifies the current modelview matrix (as from a glGetDoublev call).
proj
Specifies the current projection matrix (as from a glGetDoublev call).
view
Specifies the current viewport (as from a glGetIntegerv call).
winX, winY, winZ
Return the computed window coordinates.

Description

gluProject transforms the specified object coordinates into window coordinates using model , proj , and view . The result is stored in winX , winY , and winZ . A return value of GLU_TRUE indicates success, a return value of GLU_FALSE indicates failure.
To compute the coordinates, let v = objX objY objZ 1.0 represented as a matrix with 4 rows and 1 column. Then gluProject computes v as follows:
v = P M v
where P is the current projection matrix proj and M is the current modelview matrix model (both represented as 4 4 matrices in column-major order).
The window coordinates are then computed as follows:
winX = view 0 + view 2 v 0 + 1 2
winY = view 1 + view 3 v 1 + 1 2
winZ = v 2 + 1 2

See Also

Sample Code References

The following code samples have been found which appear to reference the functions described here. Take care that the code may be old, broken or not even use PyOpenGL.

gluProject
OpenGLContext OpenGLContext/passes/renderpass.py Lines: 280
OpenGLContext OpenGLContext/tests/test_polygonsort.py Lines: 4, 22
OpenGLContext OpenGLContext/events/mouseevents.py Lines: 130
Visvis wobjects/sliceTextures.py Lines: 205, 206
Visvis text/text_base.py Lines: 576
Visvis utils/cropper.py Lines: 305, 306
Visvis core/axises.py Lines: 872, 1128

MathML Rendering

Powered by MathJax