7
7
8
8
from .wrappers import ProxyWrapper , _stale_wrapper
9
9
10
- from .containers import DataContainer
11
-
12
10
from .artist import Artist , _renderer_group
13
11
from .description import Desc
12
+ from .containers import DataContainer
14
13
from .conversion_edge import Graph , CoordinateEdge , DefaultEdge
15
14
16
15
@@ -19,7 +18,7 @@ def __init__(self, container, edges=None, **kwargs):
19
18
super ().__init__ (container , edges , ** kwargs )
20
19
21
20
scalar = Desc ((), "display" ) # ... this needs thinking...
22
- edges = [
21
+ def_edges = [
23
22
CoordinateEdge .from_coords ("xycoords" , {"x" : "auto" , "y" : "auto" }, "data" ),
24
23
CoordinateEdge .from_coords ("codes" , {"codes" : "auto" }, "display" ),
25
24
CoordinateEdge .from_coords ("facecolor" , {"color" : Desc (())}, "display" ),
@@ -34,12 +33,11 @@ def __init__(self, container, edges=None, **kwargs):
34
33
DefaultEdge .from_default_value ("alpha_def" , "alpha" , scalar , 1 ),
35
34
DefaultEdge .from_default_value ("hatch_def" , "hatch" , scalar , None ),
36
35
]
37
- self ._graph = self ._graph + Graph (edges )
36
+ self ._graph = self ._graph + Graph (def_edges )
38
37
39
38
def draw (self , renderer , graph : Graph ) -> None :
40
39
if not self .get_visible ():
41
40
return
42
- g = graph + self ._graph
43
41
desc = Desc (("N" ,), "display" )
44
42
scalar = Desc ((), "display" ) # ... this needs thinking...
45
43
@@ -55,18 +53,14 @@ def draw(self, renderer, graph: Graph) -> None:
55
53
"alpha" : scalar ,
56
54
}
57
55
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"
66
58
)
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 ()
70
64
71
65
path = mpath .Path ._fast_from_codes_and_verts (
72
66
verts = np .vstack ([evald ["x" ], evald ["y" ]]).T , codes = evald ["codes" ]
@@ -111,6 +105,14 @@ def draw(self, renderer, graph: Graph) -> None:
111
105
gc .restore ()
112
106
113
107
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
+
114
116
class PatchWrapper (ProxyWrapper ):
115
117
_wrapped_class = _Patch
116
118
_privtized_methods = (
0 commit comments