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