| @@ -0,0 +1,91 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | |||
| <svg | |||
| xmlns:dc="http://purl.org/dc/elements/1.1/" | |||
| xmlns:cc="http://creativecommons.org/ns#" | |||
| xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||
| xmlns:svg="http://www.w3.org/2000/svg" | |||
| xmlns="http://www.w3.org/2000/svg" | |||
| xmlns:xlink="http://www.w3.org/1999/xlink" | |||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||
| width="64" | |||
| height="64" | |||
| id="svg2" | |||
| version="1.1" | |||
| inkscape:version="0.48.4 r9939" | |||
| sodipodi:docname="New document 1"> | |||
| <defs | |||
| id="defs4"> | |||
| <linearGradient | |||
| id="linearGradient3763"> | |||
| <stop | |||
| style="stop-color:#ffffff;stop-opacity:1;" | |||
| offset="0" | |||
| id="stop3765" /> | |||
| <stop | |||
| style="stop-color:#000000;stop-opacity:1;" | |||
| offset="1" | |||
| id="stop3767" /> | |||
| </linearGradient> | |||
| <radialGradient | |||
| inkscape:collect="always" | |||
| xlink:href="#linearGradient3763" | |||
| id="radialGradient3771" | |||
| cx="38.780914" | |||
| cy="23.33404" | |||
| fx="38.780914" | |||
| fy="23.33404" | |||
| r="32.661938" | |||
| gradientUnits="userSpaceOnUse" | |||
| gradientTransform="matrix(1.1215552,0.13870084,-0.14202472,1.1484324,1.1779947,-9.189628)" /> | |||
| </defs> | |||
| <sodipodi:namedview | |||
| id="base" | |||
| pagecolor="#ffffff" | |||
| bordercolor="#666666" | |||
| borderopacity="1.0" | |||
| inkscape:pageopacity="0.0" | |||
| inkscape:pageshadow="2" | |||
| inkscape:zoom="3.959798" | |||
| inkscape:cx="-12.465613" | |||
| inkscape:cy="8.3918647" | |||
| inkscape:document-units="px" | |||
| inkscape:current-layer="layer1" | |||
| showgrid="false" | |||
| inkscape:snap-page="false" | |||
| inkscape:window-width="1366" | |||
| inkscape:window-height="721" | |||
| inkscape:window-x="0" | |||
| inkscape:window-y="0" | |||
| inkscape:window-maximized="1" /> | |||
| <metadata | |||
| id="metadata7"> | |||
| <rdf:RDF> | |||
| <cc:Work | |||
| rdf:about=""> | |||
| <dc:format>image/svg+xml</dc:format> | |||
| <dc:type | |||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
| <dc:title></dc:title> | |||
| </cc:Work> | |||
| </rdf:RDF> | |||
| </metadata> | |||
| <g | |||
| inkscape:label="Layer 1" | |||
| inkscape:groupmode="layer" | |||
| id="layer1" | |||
| transform="translate(0,-988.36218)"> | |||
| <path | |||
| sodipodi:type="arc" | |||
| style="fill:url(#radialGradient3771);fill-opacity:1;stroke:#000000;stroke-width:1.32387710000000003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" | |||
| id="path2993" | |||
| sodipodi:cx="32" | |||
| sodipodi:cy="32" | |||
| sodipodi:rx="32" | |||
| sodipodi:ry="32" | |||
| d="M 64,32 A 32,32 0 1 1 0,32 32,32 0 1 1 64,32 z" | |||
| transform="matrix(0.94419643,0,0,0.94419643,1.7857143,990.14789)" /> | |||
| </g> | |||
| </svg> | |||
| @@ -0,0 +1,3 @@ | |||
| #!/bin/bash | |||
| inkscape -z -e ball.png -w 64 -h 64 ball.svg | |||
| inkscape -z -e tip.png -w 64 -h 64 tip.svg | |||
| @@ -0,0 +1,91 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | |||
| <svg | |||
| xmlns:dc="http://purl.org/dc/elements/1.1/" | |||
| xmlns:cc="http://creativecommons.org/ns#" | |||
| xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||
| xmlns:svg="http://www.w3.org/2000/svg" | |||
| xmlns="http://www.w3.org/2000/svg" | |||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||
| width="64" | |||
| height="64" | |||
| id="svg2" | |||
| version="1.1" | |||
| inkscape:version="0.48.4 r9939" | |||
| sodipodi:docname="tip.svg"> | |||
| <defs | |||
| id="defs4"> | |||
| <linearGradient | |||
| id="linearGradient3763"> | |||
| <stop | |||
| style="stop-color:#ffffff;stop-opacity:1;" | |||
| offset="0" | |||
| id="stop3765" /> | |||
| <stop | |||
| style="stop-color:#000000;stop-opacity:1;" | |||
| offset="1" | |||
| id="stop3767" /> | |||
| </linearGradient> | |||
| </defs> | |||
| <sodipodi:namedview | |||
| id="base" | |||
| pagecolor="#ffffff" | |||
| bordercolor="#666666" | |||
| borderopacity="1.0" | |||
| inkscape:pageopacity="0.0" | |||
| inkscape:pageshadow="2" | |||
| inkscape:zoom="3.959798" | |||
| inkscape:cx="5.4453989" | |||
| inkscape:cy="4.9448826" | |||
| inkscape:document-units="px" | |||
| inkscape:current-layer="layer1" | |||
| showgrid="false" | |||
| inkscape:snap-page="true" | |||
| inkscape:window-width="1366" | |||
| inkscape:window-height="721" | |||
| inkscape:window-x="0" | |||
| inkscape:window-y="0" | |||
| inkscape:window-maximized="1" | |||
| inkscape:snap-center="true" | |||
| inkscape:object-nodes="true" /> | |||
| <metadata | |||
| id="metadata7"> | |||
| <rdf:RDF> | |||
| <cc:Work | |||
| rdf:about=""> | |||
| <dc:format>image/svg+xml</dc:format> | |||
| <dc:type | |||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
| <dc:title></dc:title> | |||
| </cc:Work> | |||
| </rdf:RDF> | |||
| </metadata> | |||
| <g | |||
| inkscape:label="Layer 1" | |||
| inkscape:groupmode="layer" | |||
| id="layer1" | |||
| transform="translate(0,-988.36218)"> | |||
| <path | |||
| sodipodi:type="arc" | |||
| style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.32387710000000003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;opacity:0.29302326" | |||
| id="path2993" | |||
| sodipodi:cx="32" | |||
| sodipodi:cy="32" | |||
| sodipodi:rx="32" | |||
| sodipodi:ry="32" | |||
| d="M 64,32 A 32,32 0 1 1 0,32 32,32 0 1 1 64,32 z" | |||
| transform="matrix(0.94419643,0,0,0.94419643,1.7857143,990.14789)" /> | |||
| <path | |||
| style="color:#000000;fill:none;stroke:#000000;stroke-width:9.65;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" | |||
| d="m 32,996.21932 0,48.28568" | |||
| id="path3811" | |||
| inkscape:connector-curvature="0" /> | |||
| <path | |||
| style="color:#000000;fill:none;stroke:#000000;stroke-width:9.65;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" | |||
| d="m 7.8571427,1020.3622 48.2857143,0" | |||
| id="path3813" | |||
| inkscape:connector-curvature="0" /> | |||
| </g> | |||
| </svg> | |||
| @@ -26,12 +26,19 @@ | |||
| <div id=server_info class=hidden> </div> | |||
| <div id=pallette> | |||
| <h3>Node (5,2)</h3> | |||
| <ul> | |||
| <li>add_qubit</li> | |||
| <li>delete_qubit</li> | |||
| <li>hadamard</li> | |||
| <li>cz</li> | |||
| <li>clear</li> | |||
| <li>VOP: Hadamard</li> | |||
| <li>x: 0 | y: 5 | z: 10</li> | |||
| <li><a href="#">Measure in X</a></li> | |||
| <li><a href="#">Measure in Y</a></li> | |||
| <li><a href="#">Measure in Z</a></li> | |||
| <li><a href="#">Act Hadamard</a></li> | |||
| <li> | |||
| <a href="#">IA</a> | |||
| <a href="#">IB</a> | |||
| </li> | |||
| <li><a href="#">Delete</a></li> | |||
| </ul> | |||
| </div> | |||
| @@ -21,7 +21,7 @@ html, body { margin: 0; padding: 0; overflow: hidden; font-size: 10pt; font-fam | |||
| padding: 10px; | |||
| font-family:"courier new"; | |||
| position: absolute; | |||
| bottom: 10px; | |||
| top: 10px; | |||
| right: 10px; | |||
| font-size: 9pt; | |||
| } | |||
| @@ -34,7 +34,7 @@ html, body { margin: 0; padding: 0; overflow: hidden; font-size: 10pt; font-fam | |||
| font-family:"courier new"; | |||
| position: absolute; | |||
| top: 10px; | |||
| right: 10px; | |||
| left: 10px; | |||
| font-size: 9pt; | |||
| } | |||
| @@ -45,6 +45,12 @@ ul { | |||
| margin: 0px; | |||
| } | |||
| li{ | |||
| padding:3px; | |||
| } | |||
| .visible { | |||
| visibility: visible; | |||
| opacity: 1; | |||
| @@ -62,3 +68,10 @@ ul { | |||
| a { | |||
| color: yellow; | |||
| } | |||
| h3 { | |||
| padding-top: 0px; | |||
| padding-bottom: 0px; | |||
| margin-top: 2px; | |||
| margin-bottom: 2px; | |||
| } | |||
| @@ -0,0 +1,61 @@ | |||
| var editor = {}; | |||
| editor.nearest = undefined; | |||
| editor.onFreeMove = function() { | |||
| var n = editor.nearestNode(mouse.ray); | |||
| if (editor.nearest !== n) { | |||
| editor.nearest = n; | |||
| if (n) { | |||
| gui.nodeMessage("Node " + n + " (VOP:" + abj.vops[n] + ")" + | |||
| "<br/>" + "Click to edit neighbourhood"); | |||
| } else { | |||
| gui.hideNodeMessage(); | |||
| } | |||
| } | |||
| }; | |||
| editor.onClick = function() { | |||
| var n = editor.nearestNode(mouse.ray); | |||
| if (n) { | |||
| var p = abj.meta[n].position; | |||
| editor.gimbal.position.set(p.x, p.y, p.z); | |||
| gui.controls.target.set(p.x, p.y, p.z); | |||
| gui.hideNodeMessage(); | |||
| editor.nearest = undefined; | |||
| gui.render(); | |||
| } | |||
| }; | |||
| editor.prepare = function() { | |||
| mouse.onFreeMove = editor.onFreeMove; | |||
| mouse.onClick = editor.onClick; | |||
| editor.makeGimbal(); | |||
| }; | |||
| // Gets a reference to the node nearest to the mouse cursor | |||
| editor.nearestNode = function(ray) { | |||
| for (var i in abj.meta) { | |||
| if (ray.distanceSqToPoint(abj.meta[i].position) < 0.03) { | |||
| return i; | |||
| } | |||
| } | |||
| return undefined; | |||
| }; | |||
| editor.makeGimbal = function(center) { | |||
| editor.gimbal = new THREE.Object3D(); | |||
| var pointGeometry = new THREE.Geometry(); | |||
| pointGeometry.vertices = [ | |||
| new THREE.Vector3(1, 0, 0), | |||
| new THREE.Vector3(0, 1, 0), | |||
| new THREE.Vector3(0, 0, 1), | |||
| new THREE.Vector3(-1, 0, 0), | |||
| new THREE.Vector3(0, -1, 0), | |||
| new THREE.Vector3(0, 0, -1) | |||
| ]; | |||
| var tips = new THREE.Points(pointGeometry, materials.tip); | |||
| editor.gimbal.add(tips); | |||
| gui.scene.add(editor.gimbal); | |||
| }; | |||
| @@ -15,6 +15,10 @@ materials.prepare = function() { | |||
| transparent: false, | |||
| linewidth: 1 | |||
| }); | |||
| materials.gimbalEdge = new THREE.LineBasicMaterial({ | |||
| color: "black", | |||
| linewidth: 1, | |||
| }); | |||
| materials.tip = new THREE.PointsMaterial({ | |||
| size: 0.4, | |||
| map: tipSprite, | |||
| @@ -47,6 +47,7 @@ mouse.onUp = function(event) { | |||
| }; | |||
| mouse.onMove = function(event) { | |||
| // TODO: wasclick sux | |||
| mouse.wasClick = false; | |||
| mouse.position_absolute = { | |||
| x: event.clientX, | |||