class_docstr: Quaternion(w=1, x=0, y=0, z=0, normalize=True)
  
  A quaternion is a mathematically convenient way to
  describe rotations.
class_docstr_tok: ["Quaternion","(","w=1",",","x=0",",","y=0",",","z=0",",","normalize=True",")","A","quaternion","is","a","mathematically","convenient","way","to","describe","rotations","."]
docstr: Get the axis-angle representation of the quaternion. 
  (The angle is in radians)
docstr_tok: ["Get","the","axis-angle","representation","of","the","quaternion",".","(","The","angle","is","in","radians",")"]
code: def get_axis_angle(self):
      """Get the axis-angle representation of the quaternion.
      (The angle is in radians)
      """
      # Init
      angle = 2 * np.arccos(max(min(self.w, 1.0), -1.0))
      scale = (self.x**2 + self.y**2 + self.z**2) ** 0.5
  
      # Calc axis
      if scale:
          ax = self.x / scale
          ay = self.y / scale
          az = self.z / scale
      else:
          # No rotation, so arbitrary axis
          ax, ay, az = 1, 0, 0
      # Return
      return angle, ax, ay, az
  
imports: import numpy
label_desc: Use image node_id 16 for calling the Quaternion obj's underlying member method code with example usage: obj.get_axis_angle() and returns: angle,  ax,  ay,  az