Changeset 398
- Timestamp:
- 01/13/03 14:37:54 (6 years ago)
- Files:
-
- trunk/RBRapier/RBRapier/Formats/Lightwave/MeshedObject.py (modified) (2 diffs)
- trunk/RBRapier/RBRapier/Renderer/Appearance/Blending.py (modified) (1 diff)
- trunk/RBRapier/RBRapier/Renderer/Appearance/PointRasterization.py (modified) (1 diff)
- trunk/RBRapier/RBRapier/Renderer/ChangeBaseMgr.py (modified) (1 diff)
- trunk/RBRapier/RBRapier/Renderer/DisplayList.py (modified) (1 diff)
- trunk/RBRapier/RBRapier/Renderer/Geometry/ArrayTraversal.py (modified) (1 diff)
- trunk/RBRapier/RBRapier/Renderer/SequenceMgr.py (modified) (1 diff)
- trunk/RBRapier/RBRapier/Renderer/StateMgr.py (modified) (1 diff)
- trunk/RBRapier/RBRapier/Tools/Geometry/Analysis/TriangleMesh.py (modified) (1 diff)
- trunk/RBRapier/RBRapier/Tools/Geometry/Synthesis/VertexNormals.py (modified) (1 diff)
- trunk/RBRapier/RBRapier/Tools/Vector.py (modified) (1 diff)
- trunk/RBRapier/demo/Cube/cubescene.py (modified) (1 diff)
- trunk/RBRapier/demo/Cube/simplecube.py (modified) (1 diff)
- trunk/RBRapier/demo/Lightwave/scene.py (modified) (1 diff)
- trunk/RBRapier/demo/Lightwave/simple.py (modified) (1 diff)
- trunk/RBRapier/demo/Wavefront/scene.py (modified) (1 diff)
- trunk/RBRapier/demo/Wavefront/simple.py (modified) (1 diff)
- trunk/RBTelepathy/RBTelepathy/Packet/Builder.py (modified) (1 diff)
- trunk/RBTelepathy/RBTelepathy/Packet/Elements.py (modified) (2 diffs)
- trunk/RBTelepathy/RBTelepathy/Packet/__init__.py (modified) (3 diffs)
- trunk/RBTelepathy/RBTelepathy/Stream/Protocol.py (modified) (6 diffs)
- trunk/RBTelepathy/RBTelepathy/Stream/SocketAdaptor.py (modified) (5 diffs)
- trunk/RBTelepathy/RBTelepathy/Stream/SocketServer.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBRapier/RBRapier/Formats/Lightwave/MeshedObject.py
r379 r398 44 44 from RBRapier.Formats import GeoObject 45 45 46 from RBFoundation import TaskProgress 47 46 48 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 47 49 #~ Constants / Variables / Etc. … … 54 56 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 55 57 56 from Foundation import TaskProgress57 58 class PrintOnTaskProgress(TaskProgress.TaskProgress): 58 59 Indent = 0 trunk/RBRapier/RBRapier/Renderer/Appearance/Blending.py
r341 r398 25 25 26 26 from RBRapier.Renderer.AttributeMgr import AttributeChangeElement 27 from Foundation.LazyProperty import LazyProperty27 from RBFoundation.LazyProperty import LazyProperty 28 28 from OpenGL import GL 29 29 trunk/RBRapier/RBRapier/Renderer/Appearance/PointRasterization.py
r341 r398 25 25 26 26 from OpenGL import GL 27 from Foundation.LazyProperty import LazyProperty27 from RBFoundation.LazyProperty import LazyProperty 28 28 from RBRapier.Tools import Vector 29 29 from RBRapier.Renderer.AttributeMgr import AttributeChangeElement trunk/RBRapier/RBRapier/Renderer/ChangeBaseMgr.py
r345 r398 24 24 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25 25 26 from Foundation.AOSubjectObserver.StandardSubjects import SubjectList27 from Foundation.LazyProperty import LazyProperty26 from RBFoundation.AOSubjectObserver.StandardSubjects import SubjectList 27 from RBFoundation.LazyProperty import LazyProperty 28 28 29 29 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trunk/RBRapier/RBRapier/Renderer/DisplayList.py
r382 r398 25 25 26 26 from OpenGL import GL 27 from Foundation.AspectOriented import Aspect27 from RBFoundation.AspectOriented import Aspect 28 28 import time 29 29 trunk/RBRapier/RBRapier/Renderer/Geometry/ArrayTraversal.py
r383 r398 27 27 import Numeric 28 28 import NumericVertexArray 29 from Foundation.AspectOriented import Aspect29 from RBFoundation.AspectOriented import Aspect 30 30 31 31 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trunk/RBRapier/RBRapier/Renderer/SequenceMgr.py
r379 r398 28 28 import bisect 29 29 import weakref 30 from Foundation.AOSubjectObserver.StandardSubjects import SubjectList30 from RBFoundation.AOSubjectObserver.StandardSubjects import SubjectList 31 31 import StateMgr, AttributeMgr, BufferMgr 32 32 trunk/RBRapier/RBRapier/Renderer/StateMgr.py
r345 r398 25 25 26 26 from OpenGL import GL 27 from Foundation.AspectOriented import Aspect27 from RBFoundation.AspectOriented import Aspect 28 28 from RBRapier.Renderer.AttributeMgr import AttributeChangeElement 29 29 trunk/RBRapier/RBRapier/Tools/Geometry/Analysis/TriangleMesh.py
r366 r398 25 25 26 26 import weakref 27 from Foundation.AspectOriented.FlyweightGroup import FlyweightGroupObject27 from RBFoundation.AspectOriented.FlyweightGroup import FlyweightGroupObject 28 28 29 29 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trunk/RBRapier/RBRapier/Tools/Geometry/Synthesis/VertexNormals.py
r379 r398 27 27 import Numeric 28 28 from RBRapier.Tools.Vector import Vector3 29 from Foundation.AspectOriented.FlyweightGroup import FlyweightGroupObject29 from RBFoundation.AspectOriented.FlyweightGroup import FlyweightGroupObject 30 30 31 31 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trunk/RBRapier/RBRapier/Tools/Vector.py
r366 r398 25 25 26 26 import Numeric 27 from Foundation.IndexedProperty import IndexedProperty27 from RBFoundation.IndexedProperty import IndexedProperty 28 28 29 29 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trunk/RBRapier/demo/Cube/cubescene.py
r345 r398 25 25 26 26 from wxPython import wx 27 from Foundation.wxTools.GLViewSetup import GLViewSetup27 from RBSkinning.wxTools.GLViewSetup import GLViewSetup 28 28 29 29 from OpenGL import GL, GLUT trunk/RBRapier/demo/Cube/simplecube.py
r343 r398 20 20 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21 21 22 from Foundation.Skinning import SkinFile22 from RBSkinning import SkinFile 23 23 skin = SkinFile(open('simplecube.skin', 'r')) 24 24 skin.context.application.MainLoop() trunk/RBRapier/demo/Lightwave/scene.py
r383 r398 25 25 26 26 from wxPython import wx 27 from Foundation.wxTools.GLViewSetup import GLViewSetup27 from RBSkinning.wxTools.GLViewSetup import GLViewSetup 28 28 29 29 from OpenGL import GL trunk/RBRapier/demo/Lightwave/simple.py
r371 r398 20 20 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21 21 22 from Foundation.Skinning import SkinFile 22 from RBSkinning import SkinFile 23 23 24 def Run(): 24 25 skin = SkinFile(open('simple.skin', 'r')) trunk/RBRapier/demo/Wavefront/scene.py
r370 r398 25 25 26 26 from wxPython import wx 27 from Foundation.wxTools.GLViewSetup import GLViewSetup27 from RBSkinning.wxTools.GLViewSetup import GLViewSetup 28 28 29 29 from OpenGL import GL trunk/RBRapier/demo/Wavefront/simple.py
r345 r398 20 20 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21 21 22 from Foundation.Skinning import SkinFile22 from RBSkinning import SkinFile 23 23 skin = SkinFile(open('simple.skin', 'r')) 24 24 skin.context.application.MainLoop() trunk/RBTelepathy/RBTelepathy/Packet/Builder.py
r391 r398 25 25 26 26 import weakref 27 from Foundation.XMLClassBuilder import *27 from RBFoundation.XMLClassBuilder import * 28 28 29 29 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trunk/RBTelepathy/RBTelepathy/Packet/Elements.py
r391 r398 24 24 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25 25 26 from Foundation.XMLBuilder import XMLBuilderObjectBase27 from Foundation.XMLClassBuilder import XMLClassBuilderObjectMixin28 from Foundation.XMLObjectify import BaseObjectifiedXML, ObjectifiedXML26 from RBFoundation.XMLBuilder import XMLBuilderObjectBase 27 from RBFoundation.XMLClassBuilder import XMLClassBuilderObjectMixin 28 from RBFoundation.XMLObjectify import BaseObjectifiedXML, ObjectifiedXML 29 29 30 30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 70 70 return data 71 71 72 def GetStream Info(self):72 def GetStreamHeader(self): 73 73 return self._toXML() 74 74 trunk/RBTelepathy/RBTelepathy/Packet/__init__.py
r391 r398 24 24 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25 25 26 from Foundation.XMLClassBuilder import ElementFactory as EF27 from Foundation.XMLObjectify import BaseObjectifiedXML, ObjectifiedXML26 from RBFoundation.XMLClassBuilder import ElementFactory as EF 27 from RBFoundation.XMLObjectify import BaseObjectifiedXML, ObjectifiedXML 28 28 import Builder 29 29 import MessageElements … … 60 60 StandardElementFactories = { 61 61 ## Long names 62 ('http://namespaces.runeblade.com/RBMessaging', 'msg'): EF.Static(MessageElements.Message),63 62 ('http://namespaces.runeblade.com/RBMessaging', 'message'): EF.Static(MessageElements.Message), 64 63 ('http://namespaces.runeblade.com/RBMessaging', 'stream'): StreamFormatFactory(), 64 ('http://namespaces.runeblade.com/RBMessaging', 'error'): EF.Static(ObjectifiedXML), 65 65 66 66 ('http://namespaces.runeblade.com/RBMessaging', ): EF.Static(ObjectifiedXML), … … 85 85 NamespaceSynonyms = Builder.StreamPacketBuilder.NamespaceSynonyms.copy() 86 86 NamespaceSynonyms.update(StandardNamespaceSynonyms) 87 88 DefaultNamespace = NamespaceSynonyms[None] 87 89 88 90 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trunk/RBTelepathy/RBTelepathy/Stream/Protocol.py
r392 r398 24 24 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25 25 26 import Packet 26 from RBMessaging.Packet import StandardStreamPacketBuilder 27 from xml.sax.saxutils import escape as xmlescape 27 28 28 29 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 31 32 32 33 class StreamProtocol(object): 33 """34 <!-- XML Routing Protocol -->35 <info xmlns='http://namespaces.runeblade.com/RBRouter'>36 <address>37 <to>account@network/resource?type=mobile</to>38 <copy>account@network/resource?type=mobile</copy>39 </address>40 <stream format='length' size='3092'/>41 </info>42 \x1F43 message content44 """45 46 34 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 47 35 #~ Constants / Variables / Etc. … … 50 38 delimiter = '\x1F' # ASCII unit seperator 51 39 data = None 52 packet = None40 currentpacket = None 53 41 54 42 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 57 45 58 46 def SendPacket(self, packet): 59 data = ''.join((packet.Get InfoStream(), self.delimiter, packet.GetDataStream()))47 data = ''.join((packet.GetStreamHeader(), self.delimiter, packet.GetStreamData())) 60 48 self.stream.write(data) 61 49 … … 64 52 else: self.data = streamdata 65 53 66 if self.curr netpacket is None:54 if self.currentpacket is None: 67 55 try: 68 56 # Try to seperate the information packet from the data packet … … 73 61 # We now have our information packet... we can figure out what we 74 62 # are supposed to do with the content stream now 75 self.currnetpacket = Packet.Packet.Build(self, info) 76 self.currnetpacket.OnStreamData(self.data, self.OnPacketComplete) 63 try: 64 self.currentpacket = self._BuildPacket(info) 65 if self.currentpacket is None: 66 self.OnStreamError() 67 else: 68 self.data = self.currentpacket.OnStreamData(self.data, self._OnPacketComplete) 69 except Exception, e: 70 self.OnStreamError(e) 77 71 else: 78 self.currnetpacket.OnStreamData(self.data, self.OnPacketComplete) 72 self.data = self.currentpacket.OnStreamData(self.data, self._OnPacketComplete) 73 74 def _OnPacketComplete(self, packet): 75 del self.currentpacket 76 self.OnPacketComplete(packet) 79 77 80 78 def OnPacketComplete(self, packet): 81 self.connection.OnStreamPacket(packet) 82 del self.currnetpacket 79 pass 83 80 84 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 85 #~ Testing 86 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 def OnStreamError(self, error=None): 82 self.stream.write('''<error xmlns='%s'>%s</error>%s''' % (StandardStreamPacketBuilder.DefaultNamespace, xmlescape(str(error or 'Unknown')), self.delimiter)) 83 print error 87 84 88 if __name__=='__main__': 89 print "Testing..." 90 import sys 91 import StringIO 92 info = '''<info> 93 <stream name="one" format="term" ord='#0A'/> 94 <stream name="two" format="term" ord='13'/> 95 </info>''' 96 data = ['Some content\n','Other Stuff\r'] 97 packet = Packet.Packet(Packet.InfoPacket.Build(info), data) 85 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 86 #~ Protected Methods 87 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 88 99 p = StreamProtocol() 100 p.stream = StringIO.StringIO() 101 p.SendPacket(packet) 89 def _BuildPacket(self, info): 90 try: 91 packetbuilder = self.packetbuilder 92 except AttributeError: 93 packetbuilder = self.packetbuilder = StandardStreamPacketBuilder() 94 self.packetbuilder.BuildPacket(info) 102 95 103 class TestConnection(object):104 def OnStreamPacket(self, packet):105 print106 print packet.info107 for data in packet.data:108 print '-'*10, data.name, '-'*10109 print repr(str(data))110 print111 p.connection = TestConnection()112 p.OnRecvStreamData(p.stream.getvalue())113 print "Test complete."114 trunk/RBTelepathy/RBTelepathy/Stream/SocketAdaptor.py
r390 r398 25 25 26 26 import threading 27 import logging 28 from Foundation import SmartSelect, LazyProperty 29 from Foundation.AOSubjectObserver.StandardSubjects import Subject 27 from RBFoundation import SmartSelect, LazyProperty 28 from RBFoundation.AOSubjectObserver.StandardSubjects import Subject 30 29 31 30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 38 37 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 38 40 _sendData = None 41 _log = logging.getLogger('SocketStream') 39 _sendData = "" 42 40 43 41 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 48 46 self._socket = socket 49 47 50 #~ SendData Property ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 48 49 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 50 #~ SendData Property 51 #~ Abstracts to allow for access control (locking) 52 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 51 53 52 54 def _getSendData(self): 53 if self._sendData is None:54 self._sendData = ""55 55 return self._sendData 56 56 def _setSendData(self, data): … … 76 76 def _ProcessRead(self, *args, **kw): 77 77 data = self._SocketRecv(*args, **kw) 78 if data: 79 self._log.debug('Received %d bytes on %r', len(data), self) 80 else: 78 if not data: 81 79 self._socket = None 82 self._log.info('Received disconnect on %r', self)83 80 self.protocol.OnRecvStreamData(data) 84 81 … … 87 84 def _ProcessWrite(self, *args, **kw): 88 85 nSent = self._SocketSend(self._sendData, *args, **kw) 89 self._log.debug('Sent %d bytes on %r', nSent, self)90 86 self._sendData = self._sendData[nSent:] 91 87 trunk/RBTelepathy/RBTelepathy/Stream/SocketServer.py
r392 r398 25 25 26 26 import weakref 27 from Foundation import SmartSelect28 from Foundation.AOSubjectObserver.StandardSubjects import Subject27 from RBFoundation import SmartSelect 28 from RBFoundation.AOSubjectObserver.StandardSubjects import Subject 29 29 30 30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 32 32 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 33 34 class SocketServer(SmartSelect. SmartSelectCollection):34 class SocketServer(SmartSelect.ClientBase): 35 35 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 36 #~ Public … … 39 39 def __init__(self, socket): 40 40 self.serversocket = socket 41 self.SelectCollection = SmartSelect.SmartSelectList()42 self.SelectCollection.append(weakref.proxy(self))43 41 self.OnNewConnection = Subject() 44 42 … … 82 80 socket.send("Thanks for connecting from %r. Goodbye!" % (info,)) 83 81 socket.shutdown(0) 84 #selecthost.SelectCollection.append(stream)85 82 86 83 server.OnNewConnection.Add(OnNewConnection)
