class_docstr: Rudimentary, generic GLSL printing tools.
  
  Additional settings:
  'use_operators': Boolean (should the printer use operators for +,-,*, or functions?)
class_docstr_tok: ["Rudimentary",",","generic","GLSL","printing","tools",".","Additional","settings",":","'use_operators","'",":","Boolean","(","should","the","printer","use","operators","for","+",",","-",",","*",",","or","functions","?",")"]
code: def _print_MatrixElement(self, expr):
      # print('begin _print_MatrixElement')
      nest = self._settings["mat_nested"]
      glsl_types = self._settings["glsl_types"]
      mat_transpose = self._settings["mat_transpose"]
      if mat_transpose:
          cols, rows = expr.parent.shape
          i, j = expr.j, expr.i
      else:
          rows, cols = expr.parent.shape
          i, j = expr.i, expr.j
      pnt = self._print(expr.parent)
      if glsl_types and ((rows <= 4 and cols <= 4) or nest):
          return "{}[{}][{}]".format(pnt, i, j)
      else:
          return "{}[{}]".format(pnt, i + j * rows)
  
imports: from __future__ import annotations
  from sympy.core import Basic, S
  from sympy.core.function import Lambda
  from sympy.core.numbers import equal_valued
  from sympy.printing.codeprinter import CodePrinter
  from sympy.printing.precedence import precedence
  from functools import reduce
label_desc: Use image node_id 11 for calling the GLSLPrinter obj's underlying member method code with example usage: obj._print_MatrixElement(expr) and returns: str, str