def draw_lines(self, lineList, colorList=None):
        """
        Given a list of lists of points, draw a separate line for each list
        Note: it is a list of list! a list of lines. Each line is a set of points
        The number of points in lineList[0] - 1 should equal to the number of color segments of colorList[0]
        """
        if colorList is None:
            super(ColorLineNodePath, self).drawLines(lineList)
        else:
            for pointList, lineColor in zip(lineList, colorList):
                self.moveTo(*pointList[0])
                for point, seg_color, in zip(pointList[1:], lineColor):
                    assert 3 <= len(seg_color) <= 4, "color vector should have 3 or 4 component, get {} instead".format(
                        len(seg_color)
                    )
                    if len(seg_color) == 4:
                        self.setColor(LVecBase4f(*seg_color))
                    else:
                        self.setColor(LVecBase4f(*seg_color, 1.0))
                    self.drawTo(*point)
        self.create()

        Given a list of lists of points, draw a separate line for each list
        Note: it is a list of list! a list of lines. Each line is a set of points
        The number of points in lineList[0] - 1 should equal to the number of color segments of colorList[0]
        
metadrive/engine/core/draw.py