docs: def gfsep(targ1, shape1, inframe1, targ2, shape2, inframe2, abcorr, obsrvr,
            relate, refval, adjust, step, nintvals, cnfine, result=None):
      """
      Determine time intervals when the angular separation between
      the position vectors of two target bodies relative to an observer
      satisfies a numerical relationship.
  
      http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/gfsep_c.html
  
      :param targ1: Name of first body.
      :type targ1: str
      :param shape1: Name of shape model describing the first body.
      :type shape1: str
      :param inframe1: The body-fixed reference frame of the first body.
      :type inframe1: str
      :param targ2: Name of second body.
      :type targ2: str
      :param shape2: Name of the shape model describing the second body.
      :type shape2: str
      :param inframe2: The body-fixed reference frame of the second body
      :type inframe2: str
      :param abcorr: Aberration correction flag
      :type abcorr: str
      :param obsrvr: Name of the observing body.
      :type obsrvr: str
      :param relate: Relational operator.
      :type relate: str
      :param refval: Reference value.
      :type refval: float
      :param adjust: Absolute extremum adjustment value.
      :type adjust: float
      :param step: Step size in seconds for finding angular separation events.
      :type step: float
      :param nintvals: Workspace window interval count.
      :type nintvals: int
      :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()
      targ1 = stypes.stringToCharP(targ1)
      shape1 = stypes.stringToCharP(shape1)
      inframe1 = stypes.stringToCharP(inframe1)
      targ2 = stypes.stringToCharP(targ2)
      shape2 = stypes.stringToCharP(shape2)
      inframe2 = stypes.stringToCharP(inframe2)
      abcorr = stypes.stringToCharP(abcorr)
      obsrvr = stypes.stringToCharP(obsrvr)
      relate = stypes.stringToCharP(relate)
      refval = ctypes.c_double(refval)
      adjust = ctypes.c_double(adjust)
      step = ctypes.c_double(step)
      nintvals = ctypes.c_int(nintvals)
      libspice.gfsep_c(targ1, shape1, inframe1, targ2, shape2, inframe2,
                       abcorr, obsrvr, relate, refval, adjust, step, nintvals,
                       ctypes.byref(cnfine), ctypes.byref(result))
      return result