docs: def gffove(inst, tshape, raydir, target, tframe, abcorr, obsrvr,
             tol, udstep, udrefn, rpt, udrepi, udrepu, udrepf, bail, udbail, cnfine, result=None):
      """
      Determine time intervals when a specified target body or ray
      intersects the space bounded by the field-of-view (FOV) of a
      specified instrument. Report progress and handle interrupts if so
      commanded.
  
      http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/gffove_c.html
  
      :param inst: Name of the instrument
      :type inst: str
      :param tshape: Type of shape model used for target body
      :type tshape: str
      :param raydir: Ray s direction vector
      :type raydir: N-Element Array of floats
      :param target: Name of the target body
      :type target: str
      :param tframe: Body fixed body centered frame for target body
      :type tframe: str
      :param abcorr: Aberration correction flag
      :type abcorr: str
      :param obsrvr: Name of the observing body
      :type obsrvr: str
      :param tol: Convergence tolerance in seconds
      :type tol: float
      :param udstep: Name of the routine that returns a time step
      :type udstep: spiceypy.utils.callbacks.UDSTEP
      :param udrefn: Name of the routine that computes a refined time
      :type udrefn: spiceypy.utils.callbacks.UDREFN
      :param rpt:  Progress report flag
      :type rpt: bool
      :param udrepi: Function that initializes progress reporting.
      :type udrepi: spiceypy.utils.callbacks.UDREP
      :param udrepu: Function that updates the progress report
      :type udrepu: spiceypy.utils.callbacks.UDREPU
      :param udrepf: Function that finalizes progress reporting
      :type udrepf: spiceypy.utils.callbacks.UDREPF
      :param bail: Logical indicating program interrupt monitoring
      :type bail: bool
      :param udbail: Name of a routine that signals a program interrupt
      :type udbail: spiceypy.utils.callbacks.UDBAIL
      :param cnfine: SPICE window to which the search is restricted
      :type cnfine: spiceypy.utils.support_types.SpiceCell
      :param result: Optional SPICE window containing results
      :type result: spiceypy.utils.support_types.SpiceCell
      """
      assert isinstance(cnfine, stypes.SpiceCell)
      assert cnfine.is_double()
      if result is None:
          result = stypes.SPICEDOUBLE_CELL(2000)
      else:
          assert isinstance(result, stypes.SpiceCell)
          assert result.is_double()
      inst = stypes.stringToCharP(inst)
      tshape = stypes.stringToCharP(tshape)
      raydir = stypes.toDoubleVector(raydir)
      target = stypes.stringToCharP(target)
      tframe = stypes.stringToCharP(tframe)
      abcorr = stypes.stringToCharP(abcorr)
      obsrvr = stypes.stringToCharP(obsrvr)
      tol = ctypes.c_double(tol)
      rpt = ctypes.c_int(rpt)
      bail = ctypes.c_int(bail)
      libspice.gffove_c(inst, tshape, raydir, target, tframe,
                        abcorr, obsrvr, tol, udstep, udrefn, rpt,
                        udrepi, udrepu, udrepf, bail, udbail,
                        ctypes.byref(cnfine), ctypes.byref(result))
      return result