def gfrfov(inst, raydir, rframe, abcorr, obsrvr, step, cnfine, result=None):
    """
    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
    """
    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