def gfoclt(occtyp, front, fshape, fframe, back, bshape, bframe, abcorr, obsrvr,
           step, cnfine, result=None):
    """
    Determine time intervals when an observer sees one target
    occulted by, or in transit across, another.

    http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/gfoclt_c.html

    :param occtyp: Type of occultation.
    :type occtyp: str
    :param front: Name of body occulting the other.
    :type front: str
    :param fshape: Type of shape model used for front body.
    :type fshape: str
    :param fframe: Body-fixed, body-centered frame for front body.
    :type fframe: str
    :param back: Name of body occulted by the other.
    :type back: str
    :param bshape: Type of shape model used for back body.
    :type bshape: str
    :param bframe: Body-fixed, body-centered frame for back body.
    :type bframe: 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 occultation 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()
    occtyp = stypes.stringToCharP(occtyp)
    front = stypes.stringToCharP(front)
    fshape = stypes.stringToCharP(fshape)
    fframe = stypes.stringToCharP(fframe)
    back = stypes.stringToCharP(back)
    bshape = stypes.stringToCharP(bshape)
    bframe = stypes.stringToCharP(bframe)
    abcorr = stypes.stringToCharP(abcorr)
    obsrvr = stypes.stringToCharP(obsrvr)
    step = ctypes.c_double(step)
    libspice.gfoclt_c(occtyp, front, fshape, fframe, back, bshape, bframe,
                      abcorr, obsrvr, step, ctypes.byref(cnfine),
                      ctypes.byref(result))
    return result
Determine time intervals when an observer sees one target
    occulted by, or in transit across, another.

    http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/gfoclt_c.html

    :param occtyp: Type of occultation.
    :type occtyp: str
    :param front: Name of body occulting the other.
    :type front: str
    :param fshape: Type of shape model used for front body.
    :type fshape: str
    :param fframe: Body-fixed, body-centered frame for front body.
    :type fframe: str
    :param back: Name of body occulted by the other.
    :type back: str
    :param bshape: Type of shape model used for back body.
    :type bshape: str
    :param bframe: Body-fixed, body-centered frame for back body.
    :type bframe: 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 occultation 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