code: def generate_orbital_path(self, factor=3., n_points=20, viewup=None, z_shift=None):
          
          if viewup is None:
              viewup = rcParams['camera']['viewup']
          center = list(self.center)
          bnds = list(self.bounds)
          if z_shift is None:
              z_shift = (bnds[5] - bnds[4]) * factor
          center[2] = center[2] + z_shift
          radius = (bnds[1] - bnds[0]) * factor
          y = (bnds[3] - bnds[2]) * factor
          if y > radius:
              radius = y
          return vtki.Polygon(center=center, radius=radius, normal=viewup, n_sides=n_points)
docs: Genrates an orbital path around the data scene
  
          Parameters
          ----------
          facotr : float
              A scaling factor when biulding the orbital extent
  
          n_points : int
              number of points on the orbital path
  
          viewup : list(float)
              the normal to the orbital plane
  
          z_shift : float, optional
              shift the plane up/down from the center of the scene by this amount