Ejemplo n.º 1
0
    def __init__(self, size, data=None):
        self.size = size

        if data is None:
            self.matrix = identity(self.size)
        else:
            self.matrix = data

        self.c_matrix = typeutils.conv_list_2d(self.matrix, gl.GLfloat)
Ejemplo n.º 2
0
 def __imul__(self, other):
     if isinstance(other, Matrix):
         if other.size != self.size:
             errText = "size {}, expected {}".format(other.size, self.size)
             raise ValueError(errText)
         else:
             self.matrix = matrix_multiply(self.matrix, other.matrix)
             self.c_matrix = typeutils.conv_list_2d(self.matrix, gl.GLfloat)
             return self
     else:
         return NotImplemented
Ejemplo n.º 3
0
    def i_inverse(self):
        """ Calculate the inverse of Matrix instance in-place. """
        if self.size == 2:
            self.matrix = inverse2(self.matrix)
        elif self.size == 3:
            self.matrix = inverse3(self.matrix)
        elif self.size == 4:
            self.matrix = inverse4(self.matrix)
        else:
            raise NotImplementedError("Matrix inverse of size {} not implemented.".format(self.size))

        self.c_matrix = typeutils.conv_list_2d(self.matrix, gl.GLfloat)
        return self
Ejemplo n.º 4
0
    def i_transpose(self):
        """ Transpose Matrix instance in-place. """
        self.matrix = transpose(self.matrix)

        self.c_matrix = typeutils.conv_list_2d(self.matrix, gl.GLfloat)
        return self