Changeset 668
- Timestamp:
- 08/20/03 22:47:35 (5 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBRapier/RBRapier/Formats/SVG/RapierRenderItems.py
r666 r668 24 24 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25 25 26 from OpenGL import GL 26 from OpenGL import GL, GLU 27 27 import Numeric 28 28 … … 40 40 41 41 _NumericType = Numeric.Float32 42 FillRuleLookup = {'evenodd': GLU.GLU_TESS_WINDING_ODD, 'nonzero': GLU.GLU_TESS_WINDING_NONZERO, None: GLU.GLU_TESS_WINDING_ODD} 42 43 43 44 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 57 58 def __add__(self, other): 58 59 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) 59 65 60 66 def GetFillColor(self): … … 279 285 def ellipticarc_rel(self, rx, ry, xrotation, largeArcFlag, sweepFlag, x, y): 280 286 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) 282 288 def ellipticarc(self, rx, ry, xrotation, largeArcFlag, sweepFlag, x, y): 283 289 startpt, endpt = self.pos, (x,y) … … 680 686 fillcolor = style.GetFillColor() 681 687 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 683 692 for glmode, fillpoints in glmodedatalist: 684 693 fillpoints = transform.TransformPoints(fillpoints) … … 702 711 703 712 class Polygon(Polyline): 713 704 714 def Compile(self, style, transform, target): 705 715 style, transform = self._GetStyleAndTransform(style, transform) … … 707 717 fillcolor = style.GetFillColor() 708 718 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 710 723 for glmode, fillpoints in glmodedatalist: 711 724 fillpoints = transform.TransformPoints(fillpoints) … … 746 759 747 760 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 749 765 for glmode, fillpoints in glmodedatalist: 750 766 fillpoints = transform.TransformPoints(fillpoints) trunk/RBRapier/RBRapier/Tools/Geometry/gluPolygonTesselation.py
r665 r668 119 119 normal = property(GetNormal, SetNormal) 120 120 121 winding = _gluTessProperty(GLU.GLU_TESS_WINDING_RULE)121 windingrule = _gluTessProperty(GLU.GLU_TESS_WINDING_RULE) 122 122 tolerance = _gluTessProperty(GLU.GLU_TESS_TOLERANCE) 123 123 boundary = _gluTessProperty(GLU.GLU_TESS_BOUNDARY_ONLY)
