14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file. 44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function randomCubeScene(numObjects, zwidth) { 64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var worldDescription = {}; 74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes = []; 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes.push({ 94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) name: 'box', 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) type: 'cube', 114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wx: 1, 124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wy: 1, 134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wz: 1 144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) }); 154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.bodies = []; 164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) for ( var i = 0; i < numObjects; i ++ ) { 174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var body = {}; 184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.shape = 'box'; 194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position = {}; 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.x = Math.random() * 30 - 15; 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.y = Math.random() * 50 + 10; 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.z = Math.random() * zwidth - (zwidth/2); 234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation = {}; 244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.x = ( Math.random() * 360 ) * Math.PI / 180; 254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.y = ( Math.random() * 360 ) * Math.PI / 180; 264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.z = ( Math.random() * 360 ) * Math.PI / 180; 274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.mass = 1.0; 284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.friction = 0.8; 294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.bodies.push(body); 304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return worldDescription; 324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function randomCylinderScene(numObjects, zwidth) { 354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var worldDescription = {}; 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes = []; 374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes.push({ 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) name: 'box', 394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) type: 'cylinder', 404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) height: 1.0, 414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) radius: 0.5 424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) }); 434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.bodies = []; 444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) for ( var i = 0; i < numObjects; i ++ ) { 454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var body = {}; 464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.shape = 'box'; 474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position = {}; 484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.x = Math.random() * 30 - 15; 494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.y = Math.random() * 50 + 10; 504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.z = Math.random() * zwidth - (zwidth/2); 514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation = {}; 524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.x = ( Math.random() * 360 ) * Math.PI / 180; 534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.y = ( Math.random() * 360 ) * Math.PI / 180; 544e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.z = ( Math.random() * 360 ) * Math.PI / 180; 554e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.mass = 1.0; 564e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.friction = 0.2; 574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.bodies.push(body); 584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return worldDescription; 604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 614e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 624e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function jengaScene(height) { 634e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var worldDescription = {}; 644e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes = []; 654e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes.push({ 664e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) name: 'boxX', 674e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) type: 'cube', 684e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wx: 5, 694e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wy: 1, 704e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wz: 1 714e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) }); 724e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes.push({ 734e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) name: 'boxZ', 744e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) type: 'cube', 754e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wx: 1, 764e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wy: 1, 774e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wz: 5 784e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) }); 794e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.bodies = []; 804e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var baseHeight = 0.55; 814e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) for (var i = 0; i < height; i++) { 824e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var y = i * 1.0 + baseHeight; 834e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (i % 2 == 0) { 844e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) for (var j = 0; j < 5; j++) { 854e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var z = j * 1.0; 864e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var x = 2.5; 874e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 884e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var body = {}; 894e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.shape = 'boxX'; 904e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position = {}; 914e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.x = x; 924e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.y = y; 934e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.z = z; 944e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation = {}; 954e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.x = 0.0; 964e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.y = 0.0; 974e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.z = 0.0; 984e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.mass = 1.0; 994e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.friction = 0.5; 1004e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.bodies.push(body); 1014e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 1024e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } else { 1034e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) for (var j = 0; j < 5; j++) { 1044e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var z = 2.5; 1054e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var x = j * 1.0; 1064e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1074e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var body = {}; 1084e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.shape = 'boxZ'; 1094e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position = {}; 1104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.x = x; 1114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.y = y; 1124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.z = z; 1134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation = {}; 1144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.x = 0.0; 1154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.y = 0.0; 1164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.z = 0.0; 1174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.mass = 1.0; 1184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.friction = 0.5; 1194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.bodies.push(body); 1204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 1214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 1224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 1234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return worldDescription; 1244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 1254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function randomShapeScene(numObjects) { 1274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var worldDescription = {}; 1284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes = []; 1294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes.push({ 1304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) name: 'stick', 1314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) type: 'cube', 1324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wx: 1, 1334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wy: 1, 1344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) wz: 5 1354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) }); 1364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes.push({ 1374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) name: 'tube', 1384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) type: 'cylinder', 1394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) radius: 1.0, 1404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) height: 2.0 1414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) }); 1424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes.push({ 1434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) name: 'sphere', 1444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) type: 'sphere', 1454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) radius: 3.0 1464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) }); 1474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.shapes.push({ 1484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) name: 'tri', 1494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) type: 'convex', 1504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) points: [ 1514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) [0.0, 0.0, 0.0], 1524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) [0.0, 1.0, 0.0], 1534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) [0.0, 0.0, 1.0], 1544e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) [0.0, 0.0, 1.0], 1554e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) [2.0, 5.0, 1.0], 1564e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) [1.0, 1.0, 1.0] 1574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ] 1584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) }); 1594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var numShapes = 4; 1614e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.bodies = []; 1624e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) for (var i = 0; i < numObjects; i++) { 1634e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var body = {}; 1644e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (i % numShapes == 0) { 1654e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.shape = 'stick'; 1664e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } else if (i % numShapes == 1) { 1674e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.shape = 'tube'; 1684e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } else if (i % numShapes == 2) { 1694e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.shape = 'sphere'; 1704e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } else if (i % numShapes == 3) { 1714e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.shape = 'tri'; 1724e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 1734e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position = {}; 1744e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.x = Math.random() * 30 - 15; 1754e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.y = Math.random() * 50 + 1; 1764e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.position.z = Math.random() * 10 - 5; 1774e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation = {}; 1784e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.x = ( Math.random() * 360 ) * Math.PI / 180; 1794e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.y = ( Math.random() * 360 ) * Math.PI / 180; 1804e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.rotation.z = ( Math.random() * 360 ) * Math.PI / 180; 1814e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.mass = 1.0; 1824e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) body.friction = 0.4; 1834e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) worldDescription.bodies.push(body); 1844e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 1854e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return worldDescription; 1864e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 1874e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1884e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function loadJenga10() { 1894e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) loadWorld(jengaScene(10)); 1904e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 1914e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1924e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function loadJenga20() { 1934e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) loadWorld(jengaScene(20)); 1944e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 1954e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1964e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function loadRandomShapes() { 1974e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) loadWorld(randomShapeScene(100)); 1984e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 1994e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2004e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function load250RandomCubes() { 2014e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) loadWorld(randomCubeScene(250, 10)); 2024e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 2034e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2044e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function load500RandomCylinders() { 2054e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) loadWorld(randomCylinderScene(500, 15)); 2064e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 2074e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2084e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function load1000RandomCubes() { 2094e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) loadWorld(randomCubeScene(1000, 20)); 2104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 2114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function load2000RandomCubes() { 2134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) loadWorld(randomCubeScene(2000, 20)); 2144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 2154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function loadTextScene(evt) { 2174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var txt = evt.target.result; 2184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (txt == undefined) { 2194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) alert('Could not load file.'); 2204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return; 2214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 2224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) var sceneDescription; 2234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) try { 2254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) sceneDescription = JSON.parse(txt); 2264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } catch(e) { 2274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) alert(e); 2284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return; 2294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 2304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) loadWorld(sceneDescription); 2324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 233