|
|
@@ -4,6 +4,7 @@ import numpy as np |
|
|
|
import websocket |
|
|
|
from socket import error as socket_error |
|
|
|
import graphstate |
|
|
|
import clifford |
|
|
|
import util |
|
|
|
|
|
|
|
class GraphState(graphstate.GraphState, networkx.Graph): |
|
|
@@ -33,6 +34,9 @@ class GraphState(graphstate.GraphState, networkx.Graph): |
|
|
|
if not all(("position" in node) for node in self.node.values()): |
|
|
|
self.layout() |
|
|
|
|
|
|
|
if not all(("vop" in node) for node in self.node.values()): |
|
|
|
self.add_vops() |
|
|
|
|
|
|
|
# Send data to browser and rate-limit |
|
|
|
self.ws.send(json.dumps(self.to_json())) |
|
|
|
time.sleep(delay) |
|
|
@@ -45,4 +49,10 @@ class GraphState(graphstate.GraphState, networkx.Graph): |
|
|
|
for key, (x, y, z) in pos.items(): |
|
|
|
self.node[key]["position"] = util.xyz(x, y, z) |
|
|
|
|
|
|
|
def add_vops(self): |
|
|
|
""" Automatically add vops if they're not present """ |
|
|
|
for key in self.node: |
|
|
|
if not "vop" in self.node[key]: |
|
|
|
self.node[key]["vop"] = clifford.by_name["identity"] |
|
|
|
|
|
|
|
|