This file is indexed.

/usr/share/pyshared/OpenGL/GLU/projection.py is in python-opengl 3.0.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
"""glu[Un]Project[4] convenience wrappers"""
from OpenGL.platform import GL
from OpenGL.raw import GLU as simple
from OpenGL import GL, arrays
from OpenGL.lazywrapper import lazy
import ctypes 
POINTER = ctypes.POINTER

@lazy( simple.gluProject )
def gluProject( baseFunction, objX, objY, objZ, model=None, proj=None, view=None ):
    """Convenience wrapper for gluProject
    
    Automatically fills in the model, projection and viewing matrices
    if not provided.
    
    returns (winX,winY,winZ) doubles
    """
    if model is None:
        model = GL.glGetDoublev( GL.GL_MODELVIEW_MATRIX )
    if proj is None:
        proj = GL.glGetDoublev( GL.GL_PROJECTION_MATRIX )
    if view is None:
        view = GL.glGetIntegerv( GL.GL_VIEWPORT )
    winX = simple.GLdouble( 0.0 )
    winY = simple.GLdouble( 0.0 )
    winZ = simple.GLdouble( 0.0 )
    result = baseFunction( 
        objX,objY,objZ,
        model,proj,view,
        winX,winY,winZ,
    )
    # On Ubuntu 9.10 we see a None come out of baseFunction,
    # despite it having a return-type specified of GLint!
    if result is not None and result != simple.GLU_TRUE:
        raise ValueError( """Projection failed!""" )
    return winX.value, winY.value, winZ.value 

@lazy( simple.gluUnProject )
def gluUnProject( baseFunction, winX, winY, winZ, model=None, proj=None, view=None ):
    """Convenience wrapper for gluUnProject
    
    Automatically fills in the model, projection and viewing matrices
    if not provided.
    
    returns (objX,objY,objZ) doubles
    """
    if model is None:
        model = GL.glGetDoublev( GL.GL_MODELVIEW_MATRIX )
    if proj is None:
        proj = GL.glGetDoublev( GL.GL_PROJECTION_MATRIX )
    if view is None:
        view = GL.glGetIntegerv( GL.GL_VIEWPORT )
    objX = simple.GLdouble( 0.0 )
    objY = simple.GLdouble( 0.0 )
    objZ = simple.GLdouble( 0.0 )
    result = baseFunction( 
        winX,winY,winZ,
        model,proj,view,
        ctypes.byref(objX),ctypes.byref(objY),ctypes.byref(objZ),
    )
    if not result:
        raise ValueError( """Projection failed!""" )
    return objX.value, objY.value, objZ.value 
@lazy( simple.gluUnProject4 )
def gluUnProject4(
    baseFunction,
    winX, winY, winZ, clipW, 
    model=None, proj=None, view=None, 
    near=0.0, far=1.0
):
    """Convenience wrapper for gluUnProject
    
    Automatically fills in the model, projection and viewing matrices
    if not provided.
    
    returns (objX,objY,objZ) doubles
    """
    if model is None:
        model = GL.glGetDoublev( GL.GL_MODELVIEW_MATRIX )
    if proj is None:
        proj = GL.glGetDoublev( GL.GL_PROJECTION_MATRIX )
    if view is None:
        view = GL.glGetIntegerv( GL.GL_VIEWPORT )
    objX = simple.GLdouble( 0.0 )
    objY = simple.GLdouble( 0.0 )
    objZ = simple.GLdouble( 0.0 )
    objW = simple.GLdouble( 0.0 )
    result = baseFunction( 
        winX,winY,winZ,
        model,proj,view,
        ctypes.byref(objX),ctypes.byref(objY),ctypes.byref(objZ),ctypes.byref(objW)
    )
    if not result:
        raise ValueError( """Projection failed!""" )
    return objX.value, objY.value, objZ.value, objW.value

__all__ = (
    'gluProject',
    'gluUnProject',
    'gluUnProject4',
)