@@ -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=server_info class=hidden> </div> | ||||
<div id=pallette> | <div id=pallette> | ||||
<h3>Node (5,2)</h3> | |||||
<ul> | <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> | </ul> | ||||
</div> | </div> | ||||
@@ -21,7 +21,7 @@ html, body { margin: 0; padding: 0; overflow: hidden; font-size: 10pt; font-fam | |||||
padding: 10px; | padding: 10px; | ||||
font-family:"courier new"; | font-family:"courier new"; | ||||
position: absolute; | position: absolute; | ||||
bottom: 10px; | |||||
top: 10px; | |||||
right: 10px; | right: 10px; | ||||
font-size: 9pt; | font-size: 9pt; | ||||
} | } | ||||
@@ -34,7 +34,7 @@ html, body { margin: 0; padding: 0; overflow: hidden; font-size: 10pt; font-fam | |||||
font-family:"courier new"; | font-family:"courier new"; | ||||
position: absolute; | position: absolute; | ||||
top: 10px; | top: 10px; | ||||
right: 10px; | |||||
left: 10px; | |||||
font-size: 9pt; | font-size: 9pt; | ||||
} | } | ||||
@@ -45,6 +45,12 @@ ul { | |||||
margin: 0px; | margin: 0px; | ||||
} | } | ||||
li{ | |||||
padding:3px; | |||||
} | |||||
.visible { | .visible { | ||||
visibility: visible; | visibility: visible; | ||||
opacity: 1; | opacity: 1; | ||||
@@ -62,3 +68,10 @@ ul { | |||||
a { | a { | ||||
color: yellow; | 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, | transparent: false, | ||||
linewidth: 1 | linewidth: 1 | ||||
}); | }); | ||||
materials.gimbalEdge = new THREE.LineBasicMaterial({ | |||||
color: "black", | |||||
linewidth: 1, | |||||
}); | |||||
materials.tip = new THREE.PointsMaterial({ | materials.tip = new THREE.PointsMaterial({ | ||||
size: 0.4, | size: 0.4, | ||||
map: tipSprite, | map: tipSprite, | ||||
@@ -47,6 +47,7 @@ mouse.onUp = function(event) { | |||||
}; | }; | ||||
mouse.onMove = function(event) { | mouse.onMove = function(event) { | ||||
// TODO: wasclick sux | |||||
mouse.wasClick = false; | mouse.wasClick = false; | ||||
mouse.position_absolute = { | mouse.position_absolute = { | ||||
x: event.clientX, | x: event.clientX, | ||||