@@ -23,7 +23,8 @@ def draw(
2323 plot : bool = True ,
2424 retrace : int = 1 ,
2525 device : Optional [Device ] = None ,
26- bg_color : tuple [float , ...] = (0 , 0 , 0 ),
26+ bg_color : tuple [int , int , int ] = (0 , 0 , 0 ),
27+ layer_colors : Optional [list [tuple [int , int , int ]]] = None ,
2728) -> None :
2829 """
2930 Visualize and/or plot a given drawing. Automatically pauses the plotter between layers to allow for changing pens.
@@ -47,11 +48,11 @@ def draw(
4748 draw that layer a second time, then either finish or prompt you to change pens.
4849 device: The AxiDraw config to which the plot should be sent. If excluded, a `Device` with all default settings
4950 will be used.
51+ bg_color: The color of the background on which the preview is rendered (r, g, b)
52+ layer_colors: A list of colors for each layer - good for previewing pen colors. Each color given as (r,g,b)
5053 """
5154 if isinstance (drawing , shapely .GeometryCollection ):
52- layers = [
53- flatten_geometry (layer ) for layer in shapely .get_parts (drawing )
54- ]
55+ layers = [flatten_geometry (layer ) for layer in shapely .get_parts (drawing )]
5556 elif isinstance (drawing , list ):
5657 layers = [flatten_geometry (layer ) for layer in drawing ]
5758 else :
@@ -70,7 +71,14 @@ def draw(
7071 warnings .warn ("THIS DRAWING GOES OUT OF BOUNDS!" )
7172
7273 if preview :
73- render (layers , width , height , preview_dpi , bg_color = bg_color )
74+ render (
75+ layers ,
76+ width ,
77+ height ,
78+ preview_dpi ,
79+ bg_color = bg_color ,
80+ layer_colors = layer_colors ,
81+ )
7482 if not plot :
7583 return
7684 min_x = min ([layer .bounds [0 ] for layer in layers ])
0 commit comments