Changeset 706
- Timestamp:
- 09/16/03 22:06:10 (5 years ago)
- Files:
-
- trunk/RBFoundation/RBFoundation/XMLNode.py (modified) (2 diffs)
- trunk/RBRapier/RBRapier/Formats/SVG/RapierRenderItems.py (modified) (10 diffs)
- trunk/RBRapier/RBRapier/Formats/SVG/SVGSkin/metadata.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBFoundation/RBFoundation/XMLNode.py
r685 r706 309 309 if idxonly is not None: del kw['idxonly'] 310 310 if args or kw: 311 match = lambda node=_any, namespace=_any, prefix=_any: node == each.node and namespace == each.namespace and prefix == each.prefix 311 def makematch(node=_any, namespace=_any, prefix=_any): 312 return lambda each: node==each.node and namespace==each.namespace and prefix==each.prefix 313 match = makematch(*args, **kw) 312 314 else: match = lambda: True 313 315 idx = 0 … … 323 325 obj.iternodes(node=_any, namespace=_any, prefix=_any)""" 324 326 if args or kw: 325 match = lambda node=_any, namespace=_any, prefix=_any: node == each.node and namespace == each.namespace and prefix == each.prefix 327 def makematch(node=_any, namespace=_any, prefix=_any): 328 return lambda each: node==each.node and namespace==each.namespace and prefix==each.prefix 329 match = makematch(*args, **kw) 326 330 else: match = lambda: True 327 331 for each in self.elems: 328 332 if not isinstance(each, basestring): 329 if match( *args, **kw):333 if match(each): 330 334 yield each 331 335 trunk/RBRapier/RBRapier/Formats/SVG/RapierRenderItems.py
r703 r706 501 501 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 502 502 503 def Compile(self, style, transform, target ):503 def Compile(self, style, transform, target, ristack): 504 504 #style, transform = self._GetStyleAndTransform(style, transform) 505 505 pass … … 563 563 564 564 class GroupRenderItem(RenderItem): 565 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 566 #~ Constants / Variables / Etc. 567 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 565 569 renderChildren = () 566 570 otherChildren = () 567 571 568 def Compile(self, style=None, transform=None, target=None): 572 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 573 #~ Public Methods 574 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 576 def Compile(self, style=None, transform=None, target=None, ristack=[]): 569 577 style, transform = self._GetStyleAndTransform(style, transform) 578 ristack = ristack + [self] 570 579 for child in self.renderChildren: 571 child.Compile(style, transform, target )580 child.Compile(style, transform, target, ristack) 572 581 child.AddProgress(target) 573 582 … … 611 620 dimensions = (0.,0.) 612 621 613 def Compile(self, style=None, transform=None, target=None ):622 def Compile(self, style=None, transform=None, target=None, ristack=[]): 614 623 style, transform = self._GetStyleAndTransform(style, transform) 615 self.useitem.Compile(style, transform, target )624 self.useitem.Compile(style, transform, target, ristack+[self]) 616 625 self.useitem.AddProgress(target) 617 626 … … 735 744 class SVGGroupRenderItem(ContainerGroupRenderItem): 736 745 target = None 737 def Compile(self, style=None, transform=None, intarget=None ):746 def Compile(self, style=None, transform=None, intarget=None, ristack=[]): 738 747 self.target = GLGeometryCollector(self.CountGroups(), self.CountGeometry()) 739 748 # TODO: implement render options 740 749 741 ContainerGroupRenderItem.Compile(self, style, transform, self.target )750 ContainerGroupRenderItem.Compile(self, style, transform, self.target, ristack) 742 751 743 752 if intarget is not None: … … 764 773 765 774 class Line(RenderItem): 766 def Compile(self, style, transform, target ):775 def Compile(self, style, transform, target, ristack): 767 776 style, transform = self._GetStyleAndTransform(style, transform) 768 777 … … 792 801 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 802 794 def Compile(self, style, transform, target ):803 def Compile(self, style, transform, target, ristack): 795 804 style, transform = self._GetStyleAndTransform(style, transform) 796 805 x,y = 0., 0. … … 828 837 class Ellipse(RenderItem): 829 838 ellipsesteps = 64 830 def Compile(self, style, transform, target ):839 def Compile(self, style, transform, target, ristack): 831 840 style, transform = self._GetStyleAndTransform(style, transform) 832 841 … … 867 876 868 877 class Polyline(RenderItem): 869 def Compile(self, style, transform, target ):878 def Compile(self, style, transform, target, ristack): 870 879 if len(self.points) < 2: return 871 880 style, transform = self._GetStyleAndTransform(style, transform) … … 901 910 902 911 class Polygon(Polyline): 903 def Compile(self, style, transform, target ):912 def Compile(self, style, transform, target, ristack): 904 913 if len(self.points) < 2: return 905 914 style, transform = self._GetStyleAndTransform(style, transform) … … 939 948 940 949 class Path(RenderItem): 941 def Compile(self, style, transform, target ):950 def Compile(self, style, transform, target, ristack): 942 951 contours = SVGPathConnector.fromSVGPath(self.path).GetContours() 943 952 if not contours: return # must be a degenerate path... exit gracefully trunk/RBRapier/RBRapier/Formats/SVG/SVGSkin/metadata.py
r657 r706 31 31 32 32 class metadata(XMLNode.NodeXML): 33 def GetObject(self): 34 return self 35 object = property(GetObject) 33 def __init__(self, builder, parent, node, settings, namespacemap): 34 XMLNode.NodeXML.__init__(self, builder, parent, node, settings, namespacemap) 35 context = parent and parent.context or builder.context 36 self.object = context.SVGRenderItemFactory(node[1]) 36 37 38 def _xmlInitFinalized(self): 39 XMLNode.NodeXML._xmlInitFinalized(self) 40 if self.object is not None: 41 self.object.SetXMLNode(self) 42
