فهرست منبع

improved performances, win fixes for tcpviewer

Former-commit-id: e3329c364ebbeada35877ee2290576b3321626fb
Daniele Panozzo 9 سال پیش
والد
کامیت
1772c67ce4
2فایلهای تغییر یافته به همراه35 افزوده شده و 11 حذف شده
  1. 22 0
      python/102_DrawMeshTCP.py
  2. 13 11
      python/tcpviewer.py

+ 22 - 0
python/102_DrawMeshTCP.py

@@ -0,0 +1,22 @@
+import igl
+import tcpviewer
+import time
+
+# Load a mesh in OFF format
+V = igl.eigen.MatrixXd()
+F = igl.eigen.MatrixXi()
+time1 = time.time()
+igl.read_triangle_mesh("../tutorial/shared/armadillo.obj", V, F)
+time2 = time.time()
+
+
+print 'Loading mesh (%d vertices) %0.3f ms' % (V.rows(),(time2-time1)*1000.0)
+
+
+# Plot the mesh
+viewer = tcpviewer.TCPViewer();
+viewer.data.set_mesh(V, F);
+viewer.launch();
+time3 = time.time()
+
+print 'Sending to TCP viewer took %0.3f ms' % ((time3-time2)*1000.0)

+ 13 - 11
python/tcpviewer.py

@@ -3,9 +3,16 @@ import multiprocessing
 import igl
 import array
 
-HOST = ''                 # Symbolic name meaning all available interfaces
+HOST = 'localhost'                 # Symbolic name meaning all available interfaces
 PORT = 50008              # Arbitrary non-privileged port
 
+def worker(data):
+    viewer = igl.viewer.Viewer()
+    temp = list(data)
+    viewer.deserialize(temp)
+    viewer.launch(True,False)
+    return
+
 class TCPViewer(igl.viewer.Viewer):
     def launch(self):
         s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -22,20 +29,15 @@ if __name__ == "__main__": # The main script is a server
     try:
         while True:
             conn, addr = s.accept()
-            data = ''
+            slist = []
             while True:
-                datanew = conn.recv(1024)
-                if not datanew:
+                buf = conn.recv(4096)
+                if not buf:
                     break
-                data = data+datanew
+                slist.append(buf.decode('unicode_internal','ignore'))
             conn.close()
 
-            def worker(data):
-                viewer = igl.viewer.Viewer()
-                temp = list(data.decode('unicode_internal','ignore'))
-                viewer.deserialize(temp)
-                viewer.launch(True,False)
-                return
+            data = ''.join(slist)
 
             t = multiprocessing.Process(target=worker, args=(data,))
             t.start()