Show
Ignore:
Timestamp:
11/18/03 19:37:57 (4 years ago)
Author:
sholloway
Message:

Added support for a precompile step

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBRapier/RBRapier/Formats/SVG/RapierGeometry.py

    r710 r734  
    8282            target.AddRenderable(traversals, False) 
    8383 
    84 class GLGeometryCollector(object): 
     84class BaseGeometryCollector(object): 
    8585    def __init__(self, groupcount=1, geometrycount=1): 
    86         self.renderables = [] 
    87         self.geobin = GLGeometryBin() 
    88  
    8986        self._progress = [0,0] 
    9087        self._total = [groupcount, geometrycount] 
     
    9693 
    9794    def Progress(self): 
    98         return 0.5 * (float(self._progress[0])/self._total[0] + float(self._progress[1])/self._total[1]) 
     95        items = float(self._progress[0])/self._total[0] 
     96        groups = float(self._progress[1])/self._total[1] 
     97        return 0.5*(groups+items) 
     98 
     99class NullGeometryCollector(BaseGeometryCollector): 
     100    def AddData(self, *args, **kw): pass 
     101    def AddTranversals(self, *args, **kw): pass 
     102    def AddRenderable(self, renderable, flushgeometry=True): pass 
     103    def ExtendRenderables(self, renderables, flushgeometry=True): pass 
     104 
     105    def GetRenderables(self, *args, **kw): return [] 
     106    def Commit(self, target=None): pass 
     107 
     108class GLGeometryCollector(BaseGeometryCollector): 
     109    def __init__(self, *args, **kw): 
     110        BaseGeometryCollector.__init__(self, *args, **kw) 
     111        self.renderables = [] 
     112        self.geobin = GLGeometryBin() 
    99113 
    100114    def AddData(self, *args, **kw): 
     
    126140    def GetRenderables(self, *args, **kw): 
    127141        self.Commit(*args, **kw) 
    128         return self.renderables 
     142        return [r for r in self.renderables if r is not None] 
    129143 
    130144    def Commit(self, target=None): 
  • trunk/RBRapier/RBRapier/Formats/SVG/RapierRenderItems.py

    r710 r734  
    343343    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    344344 
     345    def PreCompile(self, ristack=[]): 
     346        pass 
     347 
    345348    def Compile(self, style, transform, target, ristack): 
    346349        #style, transform = self._GetStyleAndTransform(style, transform) 
     
    416419    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    417420 
     421    def PreCompile(self, ristack=[]): 
     422        ristack = ristack + [self] 
     423        for child in self.renderChildren: 
     424            child.PreCompile(ristack) 
     425 
    418426    def Compile(self, style=None, transform=None, target=None, ristack=[]): 
    419427        style, transform = self._GetStyleAndTransform(style, transform) 
     
    461469class UseRenderItem(RenderItem): 
    462470    dimensions = (0.,0.) 
     471 
     472    def PreCompile(self, ristack=[]): 
     473        self.useitem.PreCompile(ristack+[self]) 
    463474 
    464475    def Compile(self, style=None, transform=None, target=None, ristack=[]): 
  • trunk/RBRapier/RBRapier/Formats/SVG/SVGSkin/SVGSkinObject.py

    r671 r734  
    8080 
    8181    def _xmlInitFinalized(self): 
    82         if self.children and self.object is not None: 
    83             children = filter(None, [getattr(child, 'object', None) for child in self.children]) 
    84             self.object.SetChildren(children) 
     82        if self.object is not None: 
     83            if self.children: 
     84                children = filter(None, [getattr(child, 'object', None) for child in self.children]) 
     85                self.object.SetChildren(children) 
    8586 
    8687    def _xmlInitComplete(self):