|
- var graph = {};
- graph.colors = ["red", "green"];
-
- graph.prepare = function() {
- materials.prepare();
- //poller.connect(graph.update);
- };
-
- graph.center = function() {
- var middle = new THREE.Vector3(0, 0, 0);
- for (var i in abj.node) {
- middle = middle.add(abj.node[i].position);
- }
- middle = middle.multiplyScalar(1.0/abj.order());
- return middle;
- };
-
- graph.update = function(newState) {
- if (newState){abj.update(newState);}
-
- var gs = gui.scene.getObjectByName("graphstate");
- if (gs){ gui.scene.remove(gs); }
-
- var geometry = new THREE.Geometry();
- geometry.colors = [];
- for (var i in abj.node) {
- var color = graph.colors[abj.node[i].vop % graph.colors.length];
- if (abj.node[i].color !== undefined){
- color = abj.node[i].color;
- }
- geometry.vertices.push(abj.node[i].position);
- geometry.colors.push(new THREE.Color(color));
- }
-
- graph.center();
- gui.controls.target.copy(graph.center());
-
- var edges = new THREE.Object3D();
- var my_edges = abj.edgelist();
- for (i = 0; i < my_edges.length; ++i) {
- var edge = my_edges[i];
- var start = abj.node[edge[0]].position;
- var startpos = new THREE.Vector3(start.x, start.y, start.z);
- var end = abj.node[edge[1]].position;
- var endpos = new THREE.Vector3(end.x, end.y, end.z);
- var newEdge = materials.makeCurve(startpos, endpos);
- edges.add(newEdge);
- }
-
- if (editor.selection) {
- console.log(editor.selection);
- var node = editor.selection;
- if (Object.prototype.hasOwnProperty.call(abj.node, node)) {
- editor.grid.position.copy(abj.node[node].position);
- gui.controls.target.copy(abj.node[node].position);
- node_name.innerHTML = "Node " + node;
- node_data.className = "visible";
- node_vop.innerHTML = "VOP: " + abj.node[node].vop;
- } else {
- editor.selection = undefined;
- node_data.className = "hidden";
- }
- } else {
- node_data.className = "hidden";
- }
-
- var particles = new THREE.Points(geometry, materials.qubit);
- var object = new THREE.Object3D();
- object.name = "graphstate";
- object.add(particles);
- object.add(edges);
- gui.scene.add(object);
- gui.render();
-
- };
|