Changeset 668

Show
Ignore:
Timestamp:
08/20/03 22:47:35 (5 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

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

    r666 r668  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from OpenGL import GL 
     26from OpenGL import GL, GLU 
    2727import Numeric 
    2828 
     
    4040 
    4141_NumericType = Numeric.Float32 
     42FillRuleLookup = {'evenodd': GLU.GLU_TESS_WINDING_ODD, 'nonzero': GLU.GLU_TESS_WINDING_NONZERO, None: GLU.GLU_TESS_WINDING_ODD} 
    4243 
    4344#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    5758    def __add__(self, other): 
    5859        return Style(self._style, other._style) 
     60 
     61    def __getitem__(self, index): 
     62        return self._style[index] 
     63    def get(self, *args): 
     64        return self._style.get(*args) 
    5965 
    6066    def GetFillColor(self): 
     
    279285    def ellipticarc_rel(self, rx, ry, xrotation, largeArcFlag, sweepFlag, x, y):  
    280286        dx, dy = self.pos 
    281         return self.ellipticarc_rel(rx, ry, xrotation, largeArcFlag, sweepFlag, x+dx, y+dy) 
     287        return self.ellipticarc(rx, ry, xrotation, largeArcFlag, sweepFlag, x+dx, y+dy) 
    282288    def ellipticarc(self, rx, ry, xrotation, largeArcFlag, sweepFlag, x, y):  
    283289        startpt, endpt = self.pos, (x,y) 
     
    680686        fillcolor = style.GetFillColor() 
    681687        if fillcolor is not None and len(self.points) >= 3: 
    682             glmodedatalist = SVGTesselator([self.points]).results 
     688            windingrule = FillRuleLookup.get(style.get('fill-rule')) 
     689            if windingrule is None: windingrule = FillRuleLookup[None] 
     690 
     691            glmodedatalist = SVGTesselator([self.points], windingrule=windingrule).results 
    683692            for glmode, fillpoints in glmodedatalist: 
    684693                fillpoints = transform.TransformPoints(fillpoints) 
     
    702711 
    703712class Polygon(Polyline): 
     713 
    704714    def Compile(self, style, transform, target): 
    705715        style, transform = self._GetStyleAndTransform(style, transform) 
     
    707717        fillcolor = style.GetFillColor() 
    708718        if fillcolor is not None: 
    709             glmodedatalist = SVGTesselator([self.points]).results 
     719            windingrule = FillRuleLookup.get(style.get('fill-rule')) 
     720            if windingrule is None: windingrule = FillRuleLookup[None] 
     721 
     722            glmodedatalist = SVGTesselator([self.points], windingrule=windingrule).results 
    710723            for glmode, fillpoints in glmodedatalist: 
    711724                fillpoints = transform.TransformPoints(fillpoints) 
     
    746759 
    747760            if contourlist: 
    748                 glmodedatalist = [] #SVGTesselator(contourlist).results 
     761                windingrule = FillRuleLookup.get(style.get('fill-rule')) 
     762                if windingrule is None: windingrule = FillRuleLookup[None] 
     763 
     764                glmodedatalist = SVGTesselator(contourlist, windingrule=windingrule).results 
    749765                for glmode, fillpoints in glmodedatalist: 
    750766                    fillpoints = transform.TransformPoints(fillpoints) 
  • trunk/RBRapier/RBRapier/Tools/Geometry/gluPolygonTesselation.py

    r665 r668  
    119119    normal = property(GetNormal, SetNormal) 
    120120 
    121     winding = _gluTessProperty(GLU.GLU_TESS_WINDING_RULE) 
     121    windingrule = _gluTessProperty(GLU.GLU_TESS_WINDING_RULE) 
    122122    tolerance = _gluTessProperty(GLU.GLU_TESS_TOLERANCE) 
    123123    boundary = _gluTessProperty(GLU.GLU_TESS_BOUNDARY_ONLY)