docs: def get_sampleS(self, res, DS=None, resMode='abs',
                      ind=None, offsetIn=0., Out='(X,Y,Z)', Ind=None):
          """ Sample, with resolution res, the surface defined by DS or ind
  
          An optionnal offset perpendicular to the surface can be used
          (offsetIn>0 => inwards)
  
          Parameters
          ----------
          res     :   float / list of 2 floats
              Desired resolution of the surfacic sample
                  float   : same resolution for all directions of the sample
                  list    : [dl,dXPhi] where:
                      dl      : res. along polygon contours (cross-section)
                      dXPhi   : res. along axis (toroidal/linear direction)
          DS      :   None / list of 3 lists of 2 floats
              Limits of the domain in which the sample should be computed
                  None : whole surface of the object
                  list : [D1,D2,D3], where Di is a len()=2 list
                         (increasing floats, setting limits along coordinate i)
                      [DR,DZ,DPhi]: in toroidal geometry (self.Id.Type=='Tor')
                      [DX,DY,DZ]  : in linear geometry (self.Id.Type=='Lin')
          resMode  :   str
              Flag, specifies if res is absolute or relative to element sizes
                  'abs'   :   res is an absolute distance
                  'rel'   :   if res=0.1, each polygon segment is divided in 10,
                              as is the toroidal/linear length
          ind     :   None / np.ndarray of int
              If provided, DS is ignored and the sample points corresponding to
              the provided indices are returned
              Example (assuming obj is a Ves object)
                  > # We create a 5x5 cm2 sample of the whole surface
                  > pts, dS, ind, reseff = obj.get_sample(0.05)
                  > # Perform operations, save only the points indices (save space)
                  > ...
                  > # Retrieve the points from their indices (requires same res)
                  > pts2, dS2, ind2, reseff2 = obj.get_sample(0.05, ind=ind)
                  > np.allclose(pts,pts2)
                  True
          offsetIn:   float
              Offset distance from the actual surface of the object
              Inwards if positive
              Useful to avoid numerical errors
          Out     :   str
              Flag indicating the coordinate system of returned points
              e.g. : '(X,Y,Z)' or '(R,Z,Phi)'
          Ind     :   None / iterable of ints
              Array of indices of the entities to be considered
              (only when multiple entities, i.e.: self.nLim>1)
  
          Returns
          -------
          pts     :   np.ndarray / list of np.ndarrays
              Sample points coordinates, as a (3,N) array.
              A list is returned if the object has multiple entities
          dS      :   np.ndarray / list of np.ndarrays
              The surface (in m^2) associated to each point
          ind     :   np.ndarray / list of np.ndarrays
              The index of each point
          reseff  :   np.ndarray / list of np.ndarrays
              Effective resolution in both directions after sample computation
          """
          if Ind is not None:
              assert self.dgeom['Multi']
          kwdargs = dict(DS=DS, dSMode=resMode, ind=ind, DIn=offsetIn,
                         VIn=self.dgeom['VIn'], VType=self.Id.Type,
                         VLim=np.ascontiguousarray(self.Lim), nVLim=self.noccur,
                         Out=Out, margin=1.e-9,
                         Multi=self.dgeom['Multi'], Ind=Ind)
          args = [self.Poly, self.dgeom['P1Min'][0], self.dgeom['P1Max'][0],
                  self.dgeom['P2Min'][1], self.dgeom['P2Max'][1], res]
          pts, dS, ind, reseff = _comp._Ves_get_sampleS(*args, **kwdargs)
          return pts, dS, ind, reseff