Changeset 660

Show
Ignore:
Timestamp:
08/15/03 13:21:17 (5 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/RenderItems/PathBuilder.py

    r631 r660  
    5050    T   absolute smooth quadratic bezier curveto        (x y)+ 
    5151    t   relative smooth quadratic bezier curveto        (x y)+ 
    52 eliptical arc          
     52elliptical arc         
    5353    A   absolute elliptical arc         (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+ 
    5454""" 
  • trunk/RBRapier/RBRapier/Formats/SVG/RapierRenderItems.py

    r658 r660  
    2727import Numeric 
    2828 
     29from RBRapier.Tools import Transformations2d 
     30from RBRapier.Tools.Geometry import Curves 
    2931from RBRapier.Tools.Geometry.gluPolygonTesselation import gluPolygonTesselator 
    30 from RBRapier.Tools import Transformations2d 
    3132 
    3233#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    132133 
    133134    def Compile(self, style=None, transform=None): 
     135        pass 
     136        #style, transform = self._GetStyleAndTransform(style, transform) 
     137 
     138    def CountItems(self): 
     139        return 1 
     140    def CountGroups(self): 
     141        return 0 
     142 
     143    #~ SVG Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     144 
     145    def SetPosition(self, position): 
     146        if self.transform is None: 
     147            self.transform = Transform() 
     148        self.transform.translate(*position) 
     149 
     150    def SetTransform(self, transform): 
     151        if self.transform is None: 
     152            self.transform = Transform.fromSVGTransforms(transform) 
     153        else: 
     154            self.transform.AddSVGTransforms(transform) 
     155 
     156    def SetStyle(self, style): 
     157        self.style = Style(style) 
     158 
     159    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     160 
     161    def _GetStyleAndTransform(self, style=None, transform=None): 
    134162        if style is None: 
    135163            style = self.style 
     
    140168        elif self.transform is not None: 
    141169            transform = transform * self.transform 
    142         return self._Compile(style, transform) 
    143  
    144     def _Compile(self, style, transform): 
    145         return [self] 
    146  
    147     def CountItems(self): 
    148         return 1 
    149     def CountGroups(self): 
    150         return 0 
    151  
    152     def Render(self): 
    153         self._RenderFill() 
    154         self._RenderStroke() 
    155  
    156     def _RenderStroke(self):  
    157         pass 
    158  
    159     def _RenderFill(self):  
    160         pass 
    161  
    162     #~ SVG Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    163  
    164     def SetPosition(self, position): 
    165         if self.transform is None: 
    166             self.transform = Transform() 
    167         self.transform.translate(*position) 
    168  
    169     def SetTransform(self, transform): 
    170         if self.transform is None: 
    171             self.transform = Transform.fromSVGTransforms(transform) 
    172         else: 
    173             self.transform.AddSVGTransforms(transform) 
    174  
    175     def SetStyle(self, style): 
    176         self.style = Style(style) 
     170        return style, transform 
    177171 
    178172#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    181175    children = () 
    182176 
    183     def _Compile(self, style, transform): 
    184         results = [] 
     177    def Compile(self, style, transform): 
     178        style, transform = self._GetStyleAndTransform(style, transform) 
    185179        for child in self.children: 
    186             results.extend(child.Compile(style, transform)) 
    187         return results 
     180            child.Compile(style, transform) 
    188181 
    189182    def CountItems(self): 
     
    191184    def CountGroups(self): 
    192185        return reduce(int.__add__, [x.CountGroups() for x in self.children], 1) 
    193  
    194     def _RenderStroke(self): 
    195         for child in self.children: 
    196             child._RenderStroke() 
    197          
    198     def _RenderFill(self): 
    199         for child in self.children: 
    200             child._RenderFill() 
    201186 
    202187    def SetChildren(self, children): 
     
    221206 
    222207class Line(RenderItem): 
    223     def _Compile(self, style, transform): 
     208    def Compile(self, style, transform): 
     209        style, transform = self._GetStyleAndTransform(style, transform) 
    224210        self._r_strokecolor = style.GetStrokeColor() 
    225         # TODO: Transform points 
    226         ##self._r_points = transform * self.points 
    227211        self._r_points = TransformPoints(self.points, transform) 
    228212        return [self] 
    229  
    230     #def _RenderStroke(self): 
    231     #    if self._r_strokecolor: 
    232     #        GL.glColor4ubv(self._r_strokecolor) 
    233     #        GL.glBegin(GL.GL_LINES) 
    234     #        GL.glVertex2fv(self._r_points[0]) 
    235     #        GL.glVertex2fv(self._r_points[1]) 
    236     #        GL.glEnd() 
    237  
    238     #def _RenderFill(self): 
    239     #    pass 
    240213 
    241214    #~ SVG Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    276249 
    277250class Ellipse(RenderItem): 
     251    Curves.Ellipse 
    278252    #~ SVG Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    279253 
     
    296270 
    297271class Path(RenderItem): 
     272    Curves.QuadraticBezier 
     273    Curves.CubicBezier 
     274    Curves.EllipticArc 
     275    Curves.Ellipse 
    298276    #~ SVG Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    299277 
  • trunk/RBRapier/RBRapier/Formats/SVG/SVGSkin/SVGItems/PathBuilder.py

    r657 r660  
    5050    T   absolute smooth quadratic bezier curveto        (x y)+ 
    5151    t   relative smooth quadratic bezier curveto        (x y)+ 
    52 eliptical arc          
     52elliptical arc         
    5353    A   absolute elliptical arc         (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+ 
    5454""" 
  • trunk/RBRapier/RBRapier/Tools/Transformations.py

    r658 r660  
    5353    def __mul__(self, other): 
    5454        if isinstance(other, TransformPrimitive3dh): 
    55             return Matrix(Numeric.dot(self.asArray4x4(), other.asArray4x4())
     55            return Composite([self, other]
    5656        elif isinstance(other, Numeric.ArrayType): 
    5757            return Numeric.dot(self.asArray4x4(), other) 
     
    6060    def __rmul__(self, other): 
    6161        if isinstance(other, TransformPrimitive3dh): 
    62             return Matrix(Numeric.dot(other.asArray4x4(), self.asArray4x4())
     62            return Composite([other, self]
    6363        elif isinstance(other, Numeric.ArrayType): 
    6464            return Numeric.dot(other, self.asArray4x4()) 
     
    8181    <Composite: [<Rotation: Angle=23.0, Axis=[-0.38018780946731567, -0.59743797779083252, -0.70606309175491333, 1.0]>, <Scale: [0.5, 0.3333333432674408, 0.25, 1.0]>, <Translation: [-1.0, -2.0, -3.0, 1.0]>, <Identity>] > 
    8282    >>> (c * c.Inverse()).asArray4x4() 
    83     array([[ 9.99999999e-001,  1.24926288e-010,  1.19565441e-010,  1.52539870e-010], 
     83    array([[ 9.99999999e-001,  1.24926286e-010,  1.19565441e-010,  1.52539981e-010], 
    8484           [ 2.81084066e-010,  1.00000003e+000, -1.15097085e-009, -5.50221717e-008], 
    8585           [ 4.78261764e-010, -2.04617046e-009,  9.99999998e-001,  8.76708395e-009], 
     
    123123    def __imul__(self, other): 
    124124        if isinstance(other, TransformPrimitive3dh): 
    125             self.Add(other) 
     125            if isinstance(other, Composite): 
     126                self.collection.extend(other.collection) 
     127            else: 
     128                self.collection.append(other) 
    126129            return self 
    127130        else: 
     
    130133    def __mul__(self, other): 
    131134        if isinstance(other, TransformPrimitive3dh): 
    132             return Composite(self.collection + [other]) 
     135            if isinstance(other, Composite): 
     136                return Composite(self.collection + other.collection) 
     137            else: 
     138                return Composite(self.collection + [other]) 
    133139        else: TransformPrimitive3dh.__mul__(self, other) 
    134140 
    135141    def __rmul__(self, other): 
    136142        if isinstance(other, TransformPrimitive3dh): 
    137             return Composite([other] + self.collection) 
     143            if isinstance(other, Composite): 
     144                return Composite(other.collection + self.collection) 
     145            else: 
     146                return Composite([other] + self.collection) 
    138147        else: TransformPrimitive3dh.__rmul__(self, other) 
    139148 
  • trunk/RBRapier/RBRapier/Tools/Transformations2d.py

    r658 r660  
    5353    def __mul__(self, other): 
    5454        if isinstance(other, TransformPrimitive2dh): 
    55             return Matrix(Numeric.dot(self.asArray3x3(), other.asArray3x3())
     55            return Composite([self, other]
    5656        elif isinstance(other, Numeric.ArrayType): 
    5757            return Numeric.dot(self.asArray3x3(), other) 
     
    6060    def __rmul__(self, other): 
    6161        if isinstance(other, TransformPrimitive2dh): 
    62             return Matrix(Numeric.dot(other.asArray3x3(), self.asArray3x3())
     62            return Composite([other, self]
    6363        elif isinstance(other, Numeric.ArrayType): 
    6464            return Numeric.dot(other, self.asArray3x3()) 
     
    8989    def __imul__(self, other): 
    9090        if isinstance(other, TransformPrimitive2dh): 
    91             self.Add(other) 
     91            if isinstance(other, Composite): 
     92                self.collection.extend(other.collection) 
     93            else: 
     94                self.collection.append(other) 
    9295            return self 
    9396        else: 
     
    9699    def __mul__(self, other): 
    97100        if isinstance(other, TransformPrimitive2dh): 
    98             return Composite(self.collection + [other]) 
     101            if isinstance(other, Composite): 
     102                return Composite(self.collection + other.collection) 
     103            else: 
     104                return Composite(self.collection + [other]) 
    99105        else: TransformPrimitive2dh.__mul__(self, other) 
    100106 
    101107    def __rmul__(self, other): 
    102108        if isinstance(other, TransformPrimitive2dh): 
    103             return Composite([other] + self.collection) 
     109            if isinstance(other, Composite): 
     110                return Composite(other.collection + self.collection) 
     111            else: 
     112                return Composite([other] + self.collection) 
    104113        else: TransformPrimitive2dh.__rmul__(self, other) 
    105114 
     
    180189 
    181190    def __repr__(self): 
    182         return "<Translation: %s>" % (self.Direction.tolist(),) 
     191        return "<Translation: %r>" % (self.Direction,) 
    183192 
    184193    def asArray3x3(self): 
     
    210219 
    211220    def __repr__(self): 
    212         return "<Scale: %s>" % (self.Scale.tolist(),) 
     221        return "<Scale: %r>" % (self.Scale,) 
    213222 
    214223    def asArray3x3(self): 
  • trunk/RBRapier/demo/Attic/SVG.old/display.py

    r643 r660  
    5151skinxml = """<?xml version='1.0'?>  
    5252<skin:skin xmlns:skin='http://namespaces.runeblade.com/skin' xmlns:py='http://namespaces.runeblade.com/xmlPython' xmlns='http://namespaces.runeblade.com/wxPythonSkin'> 
    53     <frame title='SVG Displayer' show='1' pos='0,0' size='800,600'> 
     53    <frame ctxvar='behavior.frame' title='SVG Displayer' show='1' pos='0,0' size='800,600'> 
    5454        <layout fit='0'> 
    5555            <panel> 
     
    7676 
    7777class Behavior(object): 
     78    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     79    #~ Constants / Variables / Etc.  
     80    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     81 
     82    frametitle = 'SVG Displayer' 
     83 
     84    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     85    #~ Public Methods  
     86    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     87 
    7888    def OnSkinInitialize(self): 
    7989        pass 
     
    8393 
    8494        self.viewsetup = GLViewSetup(self.glcanvas, 30) 
    85         self.viewsetup.OnRender.Add(self.Initialize) 
     95        self.viewsetup.OnRender.Add(self.ViewInitialize) 
    8696        self.viewsetup.OnRender.Add(self.Render) 
    8797        self.viewsetup.OnRender.Add(self.PostRender) 
    8898        self.viewsetup.StartRendering() 
    8999 
    90     def Initialize(self, glviewsetup, canvas): 
    91         glviewsetup.OnRender.Remove(self.Initialize) 
     100    def ViewInitialize(self, glviewsetup, canvas): 
     101        glviewsetup.OnRender.Remove(self.ViewInitialize) 
    92102        self.root = SequenceMgr.RootSequence() 
    93103 
     
    108118            self.svgs.AddElement(svgrenderer.Display(svg)) 
    109119 
    110         self.root.AddElement(self.Thing) 
    111120        self.root.AddElement(self.svgs) 
    112121 
     122    _fps_score = 0 
    113123    def Render(self, subject, canvas): 
    114124        self.viewport.SetRectangle(canvas.GetClientRect().asTuple()) 
     
    117127        self.root.Execute(None) 
    118128 
    119         #maxfps = 40 
    120         #realfps = self.root.Statistics['persecond'] 
    121         #targetfps = self.viewsetup.GetTargetFPS() 
    122         #if realfps < 2*targetfps: 
    123         #    newtarget = min(maxfps, realfps*0.45) 
    124         #    self.viewsetup.SetTargetFPS(newtarget) 
    125         #    print "Lowering fps to:", newtarget, "old target:", targetfps, "real:", realfps 
    126  
    127     def Thing(self, *args): 
    128         GL.glRotated((3*time.clock())%360., 1, 0, 0) 
    129         GL.glRotated((2*time.clock())%360., 0, 1, 0) 
    130         GL.glRotated((1*time.clock())%360., 0, 0, 1) 
     129        if time.clock() - self._fps_score >= 1.: 
     130            self.frame.SetTitle(self.frametitle + ' [FPS: %1.1f]' % self.root.Statistics['persecond']) 
     131            self._fps_score = time.clock() 
    131132 
    132133    def PostRender(self, glviewsetup, canvas): 
  • trunk/RBSkinning/RBSkinning/wxTools/wxDockingTools.py

    r654 r660  
    9292    def DockTo(self, dockhost): 
    9393        if dockhost is not self.dockhost: 
    94             self.Undock(redocking=dockhost
     94            self.Undock(redocking=bool(dockhost)
    9595            self.dockhost = dockhost 
    96             return self.Dock(redocking=dockhost
     96            return self.Dock(redocking=bool(dockhost)
    9797        else: 
    9898            return self.Dock() 
     
    140140        return self.docked 
    141141 
     142    def _SetDockHost(self, dockhost, dockitem, docked=True): 
     143        pass 
     144 
    142145#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    143146 
     
    171174 
    172175class wxDockHostBase(wxDockHostAbstract): 
     176    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     177    #~ Public Methods  
     178    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     179 
    173180    def HideEmpty(self): 
    174181        hideempty = self.GetHideEmpty() 
     
    190197            self.hideempty = hideempty 
    191198 
     199    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     200 
     201    def DockItem(self, container, dockitem=None, *args, **kw): 
     202        if dockitem is None: 
     203            container.DockTo(self) 
     204        else: 
     205            return self._DoDockItem(container, dockitem, *args, **kw) 
     206 
     207    def UndockItem(self, container, dockitem=None, *args, **kw): 
     208        if dockitem is None: 
     209            if container.IsDocked(self): 
     210                container.Undock() 
     211        else: 
     212            return self._DoUndockItem(container, dockitem, *args, **kw) 
     213 
     214    def Layout(self): 
     215        raise NotImplementedError 
     216 
     217    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     218    #~ Protected Methods  
     219    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     220 
     221    def _DoDockItem(self, container, dockitem, *args, **kw): 
     222        raise NotImplementedError 
     223        return self._FinishDockItem(container, dockitem) 
     224 
     225    def _FinishDockItem(self, container, dockitem): 
     226        container._SetDockHost(self, dockitem, docked=True) 
     227        self.DockContainers().append(container) 
     228        self.OnDockItem(container, dockitem) 
     229        self.Layout() 
     230 
     231    def _DoUndockItem(self, container, dockitem, *args, **kw): 
     232        raise NotImplementedError 
     233        return self._FinishUndockItem(container, dockitem) 
     234 
     235    def _FinishUndockItem(self, container, dockitem): 
     236        container._SetDockHost(self, dockitem, docked=False) 
     237        self.DockContainers().remove(container) 
     238        self.OnUndockItem(container, dockitem) 
     239        self.Layout() 
     240 
    192241#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    193242 
     
    216265        self.SetHideEmpty(hideempty) 
    217266 
    218     def DockItem(self, container, dockitem=None, *args, **kw): 
    219         if dockitem is None: 
    220             container.DockTo(self) 
    221         else: 
    222             return self._DoDockItem(container, dockitem, *args, **kw) 
    223  
    224267    def _DoDockItem(self, container, dockitem, *args, **kw): 
    225268        self.dockcount += 1 
     269 
    226270        try: DIReparent = dockitem.Reparent 
    227271        except AttributeError: pass 
     
    231275            self.layout.Prepend(dockitem, *args, **kw) 
    232276        else: self.layout.Add(dockitem, *args, **kw) 
    233         self.DockContainers().append(container) 
    234         self.OnDockItem(container, dockitem) 
    235         self.Layout() 
    236  
    237     def UndockItem(self, container, dockitem=None, *args, **kw): 
    238         if dockitem is None: 
    239             if container.IsDocked(self): 
    240                 container.Undock() 
    241         else: 
    242             return self._DoUndockItem(container, dockitem, *args, **kw) 
     277 
     278        return self._FinishDockItem(container, dockitem) 
    243279 
    244280    def _DoUndockItem(self, container, dockitem, *args, **kw): 
     
    254290        self.parent.SetSizeHints(0, 0) 
    255291        self.layout.Remove(dockitem) 
    256         self.DockContainers().remove(container) 
    257         self.OnUndockItem(container, dockitem) 
    258         self.Layout() 
     292 
     293        return self._FinishUndockItem(container, dockitem) 
    259294 
    260295    def Layout(self): 
     
    356391        self._available_pages = [] 
    357392 
    358     def DockItem(self, container, dockitem=None, *args, **kw): 
    359         if container is None: 
    360             container.DockTo(self) 
    361         else: 
    362             return self._DoDockItem(container, dockitem, *args, **kw) 
    363  
    364393    def _DoDockItem(self, container, dockitem, *args, **kw): 
    365394        self.dockcount += 1 
    366395 
    367         page = self.AcquireNotebookDockPage() 
     396        page = self._AcquireNotebookDockPage() 
    368397 
    369398        try: DIReparent = dockitem.Reparent 
     
    379408            self.notebook.AddPage(page, text, self.selectpage) 
    380409        page.Show(True) 
    381         self.DockContainers().append(container) 
    382         self.OnDockItem(container, dockitem) 
    383         self.Layout() 
    384  
    385     def UndockItem(self, container, dockitem=None, *args, **kw): 
    386         if container is None: 
    387             if container.IsDocked(self): 
    388                 container.Undock() 
    389         else: 
    390             return self._DoUndockItem(container, dockitem, *args, **kw) 
     410 
     411        return self._FinishDockItem(container, dockitem) 
    391412 
    392413    def _DoUndockItem(self, container, dockitem, *args, **kw): 
     
    398419        ##else: DIReparent(None) 
    399420 
    400         page = self.FindNotebookDockPage(dockitem) 
     421        page = self._FindNotebookDockPage(dockitem) 
    401422        if page is None: raise KeyError, "Dockitem not found" 
    402423        page.UndockItem(container, dockitem) 
     
    407428                break 
    408429 
    409         self.ReleaseNotebookDockPage(page) 
    410         self.DockContainers().remove(container) 
    411         self.OnUndockItem(container, dockitem) 
    412         self.Layout() 
     430        self._ReleaseNotebookDockPage(page) 
     431 
     432        return self._FinishUndockItem(container, dockitem) 
    413433 
    414434    def Layout(self): 
     
    417437        self.OnLayoutComplete() 
    418438 
    419     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    420  
    421     def AcquireNotebookDockPage(self): 
     439    def _AcquireNotebookDockPage(self): 
    422440        try: 
    423441            result = self._available_pages.pop() 
     
    428446        return result 
    429447 
    430     def ReleaseNotebookDockPage(self, page): 
     448    def _ReleaseNotebookDockPage(self, page): 
    431449        page.Show(False) 
    432450        self._used_pages.remove(page) 
    433451        self._available_pages.append(page) 
    434452 
    435     def FindNotebookDockPage(self, dockitem): 
     453    def _FindNotebookDockPage(self, dockitem): 
    436454        for page in self._used_pages: 
    437455            if page.IsDocked(dockitem):