code: def Box(pos=(0, 0, 0), length=1, width=2, height=3, normal=(0, 0, 1),
          c="g", alpha=1, texture=None):
      
      src = vtk.vtkCubeSource()
      src.SetXLength(length)
      src.SetYLength(width)
      src.SetZLength(height)
      src.Update()
      poly = src.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.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, alpha, texture=texture)
      actor.SetPosition(pos)
      settings.collectable_actors.append(actor)
      return actor
docs: Build a box of dimensions `x=length, y=width and z=height` oriented along vector `normal`.
  
      .. hint:: |aspring| |aspring.py|_