Browse Source

Momentum

master
Pete Shadbolt 8 years ago
parent
commit
9625e01394
7 changed files with 31 additions and 25 deletions
  1. +4
    -3
      static/main.css
  2. +2
    -2
      static/scripts/graph.js
  3. +3
    -2
      static/scripts/gui.js
  4. +1
    -0
      static/scripts/main.js
  5. +1
    -1
      static/scripts/materials.js
  6. +7
    -3
      static/scripts/orbitcontrols.js
  7. +13
    -14
      static/scripts/websocket.js

+ 4
- 3
static/main.css View File

@@ -1,6 +1,6 @@
html, body { margin: 0; padding: 0; overflow: hidden; font-size: 10pt; font-family: "courier new"; } html, body { margin: 0; padding: 0; overflow: hidden; font-size: 10pt; font-family: "courier new"; }
#node_info { #node_info {
background: black;
background: rgba(0, 0, 0, .8);
color:white; color:white;
padding: 5px; padding: 5px;
margin:0px; margin:0px;
@@ -9,9 +9,10 @@ html, body { margin: 0; padding: 0; overflow: hidden; font-size: 10pt; font-fam
left:5px; left:5px;
font-family:"courier new"; font-family:"courier new";
text-align: center; text-align: center;
font-size:10pt;
height:15px;
font-size:9pt;
/*height:15px;*/
border-radius:3px; border-radius:3px;
pointer-events: none;
} }


#server_info { #server_info {


+ 2
- 2
static/scripts/graph.js View File

@@ -1,5 +1,5 @@
var graph = {}; var graph = {};
graph.colors = ["red", "green", "yellow", "blue", "pink", "orange", "purple"];
graph.colors = ["lightblue", "green", "yellow", "red", "pink", "orange", "purple"];


graph.prepare = function() { graph.prepare = function() {
materials.prepare(); materials.prepare();
@@ -44,6 +44,6 @@ graph.update = function(newState) {
}; };


graph.add_node = function(x, y, z) { graph.add_node = function(x, y, z) {
meta = {"position": new THREE.Vector3(x, y, z)};
meta = {position: new THREE.Vector3(x, y, z)};
abj.add_node(abj.order(), meta); abj.add_node(abj.order(), meta);
}; };

+ 3
- 2
static/scripts/gui.js View File

@@ -14,9 +14,10 @@ gui.prepare = function() {
gui.controls = new THREE.OrbitControls(gui.camera); gui.controls = new THREE.OrbitControls(gui.camera);
gui.controls.addEventListener("change", gui.render); gui.controls.addEventListener("change", gui.render);
gui.controls.center.set(0, 0, 0); gui.controls.center.set(0, 0, 0);
gui.controls.target.set(0, 0, 0);
gui.controls.rotateSpeed = 0.2; gui.controls.rotateSpeed = 0.2;
gui.controls.userPanSpeed = 0.3;
gui.camera.position.set(0, 0, 20);
gui.controls.userPanSpeed = 0.1;
gui.camera.position.set(4, 4, 10);
}; };


// Someone resized the window // Someone resized the window


+ 1
- 0
static/scripts/main.js View File

@@ -1,5 +1,6 @@
function bootstrap(){ function bootstrap(){
graph.add_node(0, 0, 0); graph.add_node(0, 0, 0);
graph.add_node(3, 0, 0);
graph.update(); graph.update();
} }




+ 1
- 1
static/scripts/materials.js View File

@@ -23,7 +23,7 @@ materials.prepare = function() {
color: "red" color: "red"
}); });
materials.qubit = new THREE.PointsMaterial({ materials.qubit = new THREE.PointsMaterial({
size: 0.3,
size: 0.7,
map: ballSprite, map: ballSprite,
alphaTest: 0.5, alphaTest: 0.5,
transparent: true, transparent: true,


+ 7
- 3
static/scripts/orbitcontrols.js View File

@@ -18,6 +18,7 @@ THREE.OrbitControls = function ( object, domElement ) {
this.enabled = true; this.enabled = true;


this.center = new THREE.Vector3(); this.center = new THREE.Vector3();
this.target = new THREE.Vector3();


this.userZoom = true; this.userZoom = true;
this.userZoomSpeed = 1.0; this.userZoomSpeed = 1.0;
@@ -156,6 +157,9 @@ THREE.OrbitControls = function ( object, domElement ) {
var position = this.object.position; var position = this.object.position;
var offset = position.clone().sub( this.center ); var offset = position.clone().sub( this.center );


var diff = this.center.clone().sub( this.target ).multiplyScalar(0.2);
this.center.sub(diff);

// angle from z-axis around y-axis // angle from z-axis around y-axis


var theta = Math.atan2( offset.x, offset.z ); var theta = Math.atan2( offset.x, offset.z );
@@ -192,11 +196,11 @@ THREE.OrbitControls = function ( object, domElement ) {


this.object.lookAt( this.center ); this.object.lookAt( this.center );


thetaDelta = 0;
phiDelta = 0;
thetaDelta /= 1.5;
phiDelta /= 1.5;
scale = 1; scale = 1;


if ( lastPosition.distanceTo( this.object.position ) > 0 ) {
if ( lastPosition.distanceTo( this.object.position ) > 0.01 ) {


this.dispatchEvent( changeEvent ); this.dispatchEvent( changeEvent );




+ 13
- 14
static/scripts/websocket.js View File

@@ -1,26 +1,25 @@
var websocket = {}; var websocket = {};


websocket.connect = function(update){
websocket.connect = function(update) {
var ws = new WebSocket("ws://localhost:5000"); var ws = new WebSocket("ws://localhost:5000");
ws.onopen = function(evt)
{
ws.onopen = function(evt) {
gui.serverMessage("Connected to server."); gui.serverMessage("Connected to server.");
}; };


ws.onerror = function(err)
{
ws.onerror = function(err) {
gui.serverMessage("Could not connect to server."); gui.serverMessage("Could not connect to server.");
}; };
ws.onmessage = function (evt)
{
update(JSON.parse(evt.data));

ws.onmessage = function(evt) {
json = JSON.parse(evt.data);
for (var i in json.meta) {
var pos = json.meta[i].position;
json.meta[i].position = new THREE.Vector3(pos.x, pos.y, pos.z);
}
update(json);
}; };
ws.onclose = function(evt)
{

ws.onclose = function(evt) {
gui.serverMessage("Connection to server lost. <a href='#' onclick='javascript:websocket.connect()'>Reconnect</a>."); gui.serverMessage("Connection to server lost. <a href='#' onclick='javascript:websocket.connect()'>Reconnect</a>.");
}; };
}; };



Loading…
Cancel
Save