Changeset 706

Show
Ignore:
Timestamp:
09/16/03 22:06:10 (5 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBFoundation/RBFoundation/XMLNode.py

    r685 r706  
    309309        if idxonly is not None: del kw['idxonly'] 
    310310        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) 
    312314        else: match = lambda: True 
    313315        idx = 0 
     
    323325        obj.iternodes(node=_any, namespace=_any, prefix=_any)""" 
    324326        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) 
    326330        else: match = lambda: True 
    327331        for each in self.elems: 
    328332            if not isinstance(each, basestring): 
    329                 if match(*args, **kw): 
     333                if match(each): 
    330334                    yield each 
    331335 
  • trunk/RBRapier/RBRapier/Formats/SVG/RapierRenderItems.py

    r703 r706  
    501501    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    502502 
    503     def Compile(self, style, transform, target): 
     503    def Compile(self, style, transform, target, ristack): 
    504504        #style, transform = self._GetStyleAndTransform(style, transform) 
    505505        pass 
     
    563563 
    564564class GroupRenderItem(RenderItem): 
     565    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     566    #~ Constants / Variables / Etc.  
     567    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     568 
    565569    renderChildren = () 
    566570    otherChildren = () 
    567571 
    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=[]): 
    569577        style, transform = self._GetStyleAndTransform(style, transform) 
     578        ristack = ristack + [self] 
    570579        for child in self.renderChildren: 
    571             child.Compile(style, transform, target
     580            child.Compile(style, transform, target, ristack
    572581            child.AddProgress(target) 
    573582 
     
    611620    dimensions = (0.,0.) 
    612621 
    613     def Compile(self, style=None, transform=None, target=None): 
     622    def Compile(self, style=None, transform=None, target=None, ristack=[]): 
    614623        style, transform = self._GetStyleAndTransform(style, transform) 
    615         self.useitem.Compile(style, transform, target
     624        self.useitem.Compile(style, transform, target, ristack+[self]
    616625        self.useitem.AddProgress(target) 
    617626 
     
    735744class SVGGroupRenderItem(ContainerGroupRenderItem): 
    736745    target = None 
    737     def Compile(self, style=None, transform=None, intarget=None): 
     746    def Compile(self, style=None, transform=None, intarget=None, ristack=[]): 
    738747        self.target = GLGeometryCollector(self.CountGroups(), self.CountGeometry()) 
    739748        # TODO: implement render options 
    740749 
    741         ContainerGroupRenderItem.Compile(self, style, transform, self.target
     750        ContainerGroupRenderItem.Compile(self, style, transform, self.target, ristack
    742751 
    743752        if intarget is not None: 
     
    764773 
    765774class Line(RenderItem): 
    766     def Compile(self, style, transform, target): 
     775    def Compile(self, style, transform, target, ristack): 
    767776        style, transform = self._GetStyleAndTransform(style, transform) 
    768777 
     
    792801    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    793802 
    794     def Compile(self, style, transform, target): 
     803    def Compile(self, style, transform, target, ristack): 
    795804        style, transform = self._GetStyleAndTransform(style, transform) 
    796805        x,y = 0., 0. 
     
    828837class Ellipse(RenderItem): 
    829838    ellipsesteps = 64 
    830     def Compile(self, style, transform, target): 
     839    def Compile(self, style, transform, target, ristack): 
    831840        style, transform = self._GetStyleAndTransform(style, transform) 
    832841 
     
    867876 
    868877class Polyline(RenderItem): 
    869     def Compile(self, style, transform, target): 
     878    def Compile(self, style, transform, target, ristack): 
    870879        if len(self.points) < 2: return  
    871880        style, transform = self._GetStyleAndTransform(style, transform) 
     
    901910 
    902911class Polygon(Polyline): 
    903     def Compile(self, style, transform, target): 
     912    def Compile(self, style, transform, target, ristack): 
    904913        if len(self.points) < 2: return  
    905914        style, transform = self._GetStyleAndTransform(style, transform) 
     
    939948 
    940949class Path(RenderItem): 
    941     def Compile(self, style, transform, target): 
     950    def Compile(self, style, transform, target, ristack): 
    942951        contours = SVGPathConnector.fromSVGPath(self.path).GetContours() 
    943952        if not contours: return # must be a degenerate path... exit gracefully 
  • trunk/RBRapier/RBRapier/Formats/SVG/SVGSkin/metadata.py

    r657 r706  
    3131 
    3232class 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]) 
    3637 
     38    def _xmlInitFinalized(self): 
     39        XMLNode.NodeXML._xmlInitFinalized(self) 
     40        if self.object is not None: 
     41            self.object.SetXMLNode(self) 
     42