77
88from .wrappers import ProxyWrapper , _stale_wrapper
99
10- from .containers import DataContainer
11-
1210from .artist import Artist , _renderer_group
1311from .description import Desc
12+ from .containers import DataContainer
1413from .conversion_edge import Graph , CoordinateEdge , DefaultEdge
1514
1615
@@ -19,7 +18,7 @@ def __init__(self, container, edges=None, **kwargs):
1918 super ().__init__ (container , edges , ** kwargs )
2019
2120 scalar = Desc ((), "display" ) # ... this needs thinking...
22- edges = [
21+ def_edges = [
2322 CoordinateEdge .from_coords ("xycoords" , {"x" : "auto" , "y" : "auto" }, "data" ),
2423 CoordinateEdge .from_coords ("codes" , {"codes" : "auto" }, "display" ),
2524 CoordinateEdge .from_coords ("facecolor" , {"color" : Desc (())}, "display" ),
@@ -34,12 +33,11 @@ def __init__(self, container, edges=None, **kwargs):
3433 DefaultEdge .from_default_value ("alpha_def" , "alpha" , scalar , 1 ),
3534 DefaultEdge .from_default_value ("hatch_def" , "hatch" , scalar , None ),
3635 ]
37- self ._graph = self ._graph + Graph (edges )
36+ self ._graph = self ._graph + Graph (def_edges )
3837
3938 def draw (self , renderer , graph : Graph ) -> None :
4039 if not self .get_visible ():
4140 return
42- g = graph + self ._graph
4341 desc = Desc (("N" ,), "display" )
4442 scalar = Desc ((), "display" ) # ... this needs thinking...
4543
@@ -55,18 +53,14 @@ def draw(self, renderer, graph: Graph) -> None:
5553 "alpha" : scalar ,
5654 }
5755
58- # copy from line
59- conv = g .evaluator (self ._container .describe (), require )
60- query , _ = self ._container .query (g )
61- evald = conv .evaluate (query )
62-
63- clip_conv = g .evaluator (
64- self ._clip_box .describe (),
65- {"x" : Desc (("N" ,), "display" ), "y" : Desc (("N" ,), "display" )},
56+ evald = self ._query_and_eval (
57+ self ._container , require , graph , cacheset = "default"
6658 )
67- clip_query , _ = self ._clip_box .query (g )
68- clipx , clipy = clip_conv .evaluate (clip_query ).values ()
69- # copy from line
59+
60+ clip_req = {"x" : Desc (("N" ,), "display" ), "y" : Desc (("N" ,), "display" )}
61+ clipx , clipy = self ._query_and_eval (
62+ self ._clip_box , clip_req , graph , cacheset = "clip"
63+ ).values ()
7064
7165 path = mpath .Path ._fast_from_codes_and_verts (
7266 verts = np .vstack ([evald ["x" ], evald ["y" ]]).T , codes = evald ["codes" ]
@@ -111,6 +105,14 @@ def draw(self, renderer, graph: Graph) -> None:
111105 gc .restore ()
112106
113107
108+ class RectangleContainer (DataContainer ): ...
109+
110+
111+ class Rectangle (Patch ):
112+ def __init__ (self , container , edges = None , ** kwargs ):
113+ super ().__init__ (container , edges , ** kwargs )
114+
115+
114116class PatchWrapper (ProxyWrapper ):
115117 _wrapped_class = _Patch
116118 _privtized_methods = (
0 commit comments