code: def dskxv(pri, target, srflst, et, fixref, vtxarr, dirarr):
      
      pri    = ctypes.c_int(pri)
      target = stypes.stringToCharP(target)
      nsurf  = ctypes.c_int(len(srflst))
      srflst = stypes.toIntVector(srflst)
      et     = ctypes.c_double(et)
      fixref = stypes.stringToCharP(fixref)
      nray   = ctypes.c_int(len(vtxarr))
      vtxarr = stypes.toDoubleMatrix(vtxarr)
      dirarr = stypes.toDoubleMatrix(dirarr)
      xptarr = stypes.emptyDoubleMatrix(y=nray)
      fndarr = stypes.emptyIntVector(nray)
      libspice.dskxv_c(pri, target, nsurf, srflst, et, fixref, nray, vtxarr, dirarr, xptarr, fndarr)
      return stypes.cMatrixToNumpy(xptarr), stypes.cVectorToPython(fndarr)
docs: Compute ray-surface intercepts for a set of rays, using data
      provided by multiple loaded DSK segments.
  
      https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/dskxv_c.html
  
      :param pri: Data prioritization flag.
      :type pri: bool
      :param target: Target body name.
      :type target: str
      :param srflst: Surface ID list.
      :type srflst: list of int
      :param et: Epoch, expressed as seconds past J2000 TDB.
      :type et: float
      :param fixref: Name of target body-fixed reference frame.
      :type fixref: str
      :param vtxarr: Array of vertices of rays.
      :type vtxarr: Nx3-Element Array of floats
      :param dirarr: Array of direction vectors of rays.
      :type dirarr: Nx3-Element Array of floats
      :return: Intercept point array and Found flag array.
      :rtype: tuple