This file is indexed.

/usr/lib/pybik/pybiklib/glm.py is in pybik 1.1.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
# -*- coding: utf-8 -*-

#  Copyright © 2013  B. Clausius <barcc@gmx.de>
#
#  This program is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <http://www.gnu.org/licenses/>.

import math
import numpy


class vec3 (numpy.ndarray):
    def __new__(cls, x=0., y=0., z=0.):
        buf = numpy.array([x, y, z], dtype='f')
        return numpy.ndarray.__new__(cls, (3,), dtype='f', buffer=buf)
        
    def _seti(self, i, value):
        self[i] = value
        return value
    x = property(lambda self: self[0], lambda self, value: self._seti(0, value))
    y = property(lambda self: self[1], lambda self, value: self._seti(1, value))
    z = property(lambda self: self[2], lambda self, value: self._seti(2, value))
    
    
class vec4 (numpy.ndarray):
    def __new__(cls, x=0., y=0., z=0., w=1.):
        buf = numpy.array([x, y, z, w], dtype='f')
        return numpy.ndarray.__new__(cls, (4,), dtype='f', buffer=buf)
        
    def _seti(self, i, value):
        self[i] = value
        return value
    x = property(lambda self: self[0], lambda self, value: self._seti(0, value))
    y = property(lambda self: self[1], lambda self, value: self._seti(1, value))
    z = property(lambda self: self[2], lambda self, value: self._seti(2, value))
    w = property(lambda self: self[3], lambda self, value: self._seti(3, value))
    
    
class mat4(numpy.ndarray):
    def __new__(cls, diag=1.):
        buf = numpy.array([[diag, 0., 0., 0.],
                           [0., diag, 0., 0.],
                           [0., 0., diag, 0.],
                           [0., 0., 0., 1.]], dtype='f')
        return numpy.ndarray.__new__(cls, (4,4), dtype='f', buffer=buf)
        
        
def rotate(angle, vect):
    result = mat4()
    x = vect[0]
    y = vect[1]
    z = vect[2]
    c = math.cos(angle)
    s = math.sin(angle)
    result[0][0] = x*x*(1-c) + c
    result[0][1] = x*y*(1-c) - z*s
    result[0][2] = x*z*(1-c) + y*s
    result[1][0] = y*x*(1-c) + z*s
    result[1][1] = y*y*(1-c) + c
    result[1][2] = y*z*(1-c) - x*s
    result[2][0] = x*z*(1-c) - y*s
    result[2][1] = y*z*(1-c) + x*s
    result[2][2] = z*z*(1-c) + c
    return result