code: def Plane(pos=(0, 0, 0), normal=(0, 0, 1), sx=1, sy=None, c="g", bc="darkgreen",
            alpha=1, texture=None):
      
      if sy is None:
          sy = sx
      ps = vtk.vtkPlaneSource()
      ps.SetResolution(1, 1)
      tri = vtk.vtkTriangleFilter()
      tri.SetInputConnection(ps.GetOutputPort())
      tri.Update()
      poly = tri.GetOutput()
      axis = np.array(normal) / np.linalg.norm(normal)
      theta = np.arccos(axis[2])
      phi = np.arctan2(axis[1], axis[0])
      t = vtk.vtkTransform()
      t.PostMultiply()
      t.Scale(sx, sy, 1)
      t.RotateY(theta * 57.3)
      t.RotateZ(phi * 57.3)
      tf = vtk.vtkTransformPolyDataFilter()
      tf.SetInputData(poly)
      tf.SetTransform(t)
      tf.Update()
      pd = tf.GetOutput()
      actor = Actor(pd, c=c, bc=bc, alpha=alpha, texture=texture)
      actor.SetPosition(pos)
      settings.collectable_actors.append(actor)
      return actor
docs: Draw a plane of size `sx` and `sy` oriented perpendicular to vector `normal`
      and so that it passes through point `pos`.
  
      |Plane|