فهرست منبع

changed name to conform with matlab namings
finally the viewer works perfectly on matlab on mac, still untested on windows


Former-commit-id: 3b579b26dc21e91e342d9ce19ccd866282e1d4e9

Daniele Panozzo 9 سال پیش
والد
کامیت
4521de48d9
4فایلهای تغییر یافته به همراه46 افزوده شده و 60 حذف شده
  1. 3 3
      python/t102DrawMesh.m
  2. 43 0
      python/tcpviewer.py
  3. 0 22
      python/tcpviewer_client.py
  4. 0 35
      python/tcpviewer_server.py

+ 3 - 3
python/102_DrawMesh.m → python/t102DrawMesh.m

@@ -6,7 +6,7 @@ py.igl.readOFF('../tutorial/shared/beetle.off', V, F);
 V
 
 % Plot the mesh
-viewer = py.igl.viewer.Viewer();
-viewer.data.set_mesh(V, F);
-viewer.launch();
+viewer = py.tcpviewer.TCPViewer()
+viewer.data.set_mesh(V, F)
+viewer.launch()
 

+ 43 - 0
python/tcpviewer.py

@@ -0,0 +1,43 @@
+import socket
+import multiprocessing
+import igl
+import array
+
+HOST = ''                 # Symbolic name meaning all available interfaces
+PORT = 50008              # Arbitrary non-privileged port
+
+class TCPViewer(igl.viewer.Viewer):
+    def launch(self):
+        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        s.connect((HOST, PORT))
+        a = array.array('u',self.serialize())
+        s.sendall(a)
+        s.close()
+
+if __name__ == "__main__": # The main script is a server
+    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    s.bind((HOST, PORT))
+    s.listen(1)
+    print("TCP iglviewer server listening on port " + str(PORT))
+    try:
+        while True:
+            conn, addr = s.accept()
+            data = ''
+            while True:
+                datanew = conn.recv(1024)
+                if not datanew:
+                    break
+                data = data+datanew
+            conn.close()
+
+            def worker(data):
+                viewer = igl.viewer.Viewer()
+                temp = list(data.decode('unicode_internal','ignore'))
+                viewer.deserialize(temp)
+                viewer.launch(True,False)
+                return
+
+            t = multiprocessing.Process(target=worker, args=(data,))
+            t.start()
+    except:
+        s.close()

+ 0 - 22
python/tcpviewer_client.py

@@ -1,22 +0,0 @@
-# Echo client program
-import socket
-import igl
-import array
-
-HOST = ''    # The remote host
-PORT = 50008              # The same port as used by the server
-s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-s.connect((HOST, PORT))
-
-V = igl.eigen.MatrixXd()
-F = igl.eigen.MatrixXi()
-igl.readOFF('../tutorial/shared/beetle.off', V, F)
-viewer = igl.viewer.Viewer()
-viewer.data.set_mesh(V,F)
-
-data = viewer.serialize()
-print(type(data[0]).__name__)
-viewer.deserialize(data)
-a = array.array('u',data)
-s.sendall(a)
-s.close()

+ 0 - 35
python/tcpviewer_server.py

@@ -1,35 +0,0 @@
-# Echo server program
-import socket
-import multiprocessing
-import igl
-
-HOST = ''                 # Symbolic name meaning all available interfaces
-PORT = 50008              # Arbitrary non-privileged port
-s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-s.bind((HOST, PORT))
-s.listen(1)
-
-try:
-    while True:
-        conn, addr = s.accept()
-        print 'Connected by', addr
-        data = ''
-        while True:
-            datanew = conn.recv(1024)
-            if not datanew:
-                break
-            data = data+datanew
-        conn.close()
-
-        def worker(data):
-            viewer = igl.viewer.Viewer()
-            temp = list(data.decode('unicode_internal','ignore'))
-            viewer.deserialize(temp)
-            viewer.launch(True,False)
-            return
-
-        t = multiprocessing.Process(target=worker, args=(data,))
-        t.start()
-except:
-    print "Closing socket:"
-    s.close()