class_docstr: 4x4 Transform matrix that can always be represented as a combination of 3 matrices: scale * rotate * translate
  This transform has no shear; angles are always preserved.
class_docstr_tok: ["4x4","Transform","matrix","that","can","always","be","represented","as","a","combination","of","3","matrices",":","scale","*","rotate","*","translate","This","transform","has","no","shear",";","angles","are","always","preserved","."]
docstr: Adjust the rotation of this transform
docstr_tok: ["Adjust","the","rotation","of","this","transform"]
code: def rotate(self, angle, axis=(0, 0, 1)):
      """Adjust the rotation of this transform"""
      origAxis = self._state["axis"]
      if (
          axis[0] == origAxis[0]
          and axis[1] == origAxis[1]
          and axis[2] == origAxis[2]
      ):
          self.setRotate(self._state["angle"] + angle)
      else:
          m = QtGui.QMatrix4x4()
          m.translate(*self._state["pos"])
          m.rotate(self._state["angle"], *self._state["axis"])
          m.rotate(angle, *axis)
          m.scale(*self._state["scale"])
          self.setFromMatrix(m)
  
imports: from math import atan2, degrees
  import numpy
  from .Qt import QtGui
  from .Transform3D import Transform3D
  from .Vector import Vector
  from .None import SRTTransform
label_desc: Use image node_id 10 for calling the SRTTransform3D obj's underlying member method code with example usage: obj.rotate(angle, axis) without return types