def draw_points(self, points, colors=None):
        """
        Draw a set of points with colors
        Args:
            points: a set of 3D points
            colors: a list of color for each point

        Returns: None

        """
        for k, point in enumerate(points):
            if len(self._dying_points) > 0:
                np = self._dying_points.pop()
            else:
                np = NodePath("debug_point")
                model = self.engine.loader.loadModel(AssetLoader.file_path("models", "sphere.egg"))
                model.setScale(self.scale)
                model.reparentTo(np)
            material = Material()
            if colors:
                material.setBaseColor(LVecBase4f(*colors[k]))
            else:
                material.setBaseColor(LVecBase4f(1, 1, 1, 1))
            material.setShininess(64)
            # material.setEmission((1, 1, 1, 1))
            np.setMaterial(material, True)
            np.setPos(*point)
            np.reparentTo(self)
            self._existing_points.append(np)

        Draw a set of points with colors
        Args:
            points: a set of 3D points
            colors: a list of color for each point

        Returns: None

        
metadrive/engine/core/draw.py