'Process *args* and *kwargs*; override in derived classes.
Must set self.levels, self.zmin and self.zmax, and update axes
limits.'

def _process_args(self, *args, **kwargs):

    self.levels = args[0]
    self.allsegs = args[1]
    self.allkinds = (((len(args) > 2) and args[2]) or None)
    self.zmax = np.max(self.levels)
    self.zmin = np.min(self.levels)
    self._auto = False
    if self.filled:
        if (len(self.allsegs) != (len(self.levels) - 1)):
            raise ValueError(u'must    be    one    less    number    of    segments    as    levels')
    elif (len(self.allsegs) != len(self.levels)):
        raise ValueError(u'must    be    same    number    of    segments    as    levels')
    if ((self.allkinds is not None) and (len(self.allkinds) != len(self.allsegs))):
        raise ValueError(u'allkinds    has    different    length    to    allsegs')
    flatseglist = [s for seg in self.allsegs for s in seg]
    points = np.concatenate(flatseglist, axis=0)
    self._mins = points.min(axis=0)
    self._maxs = points.max(axis=0)
