code: def gfrfov(inst, raydir, rframe, abcorr, obsrvr, step, cnfine, result=None):
      
      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)
      raydir = stypes.toDoubleVector(raydir)
      rframe = stypes.stringToCharP(rframe)
      abcorr = stypes.stringToCharP(abcorr)
      obsrvr = stypes.stringToCharP(obsrvr)
      step = ctypes.c_double(step)
      libspice.gfrfov_c(inst, raydir, rframe, abcorr, obsrvr, step,
                        ctypes.byref(cnfine), ctypes.byref(result))
      return result
docs: Determine time intervals when a specified ray intersects the
      space bounded by the field-of-view (FOV) of a specified
      instrument.
  
      http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/gfrfov_c.html
  
      :param inst: Name of the instrument.
      :type inst: str
      :param raydir: Ray's direction vector.
      :type raydir: 3-Element Array of Float.
      :param rframe: Reference frame of ray's direction vector.
      :type rframe: str
      :param abcorr: Aberration correction flag.
      :type abcorr: str
      :param obsrvr: Name of the observing body.
      :type obsrvr: str
      :param step: Step size in seconds for finding FOV events.
      :type step: float
      :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