|
- // IE9
- if (typeof console === "undefined") {
- var console = {
- log: function(logMsg) {}
- };
- }
-
- var controls, renderer, raycaster, scene, selection, camera;
-
- // Run on startup
- window.onload = init;
-
- // Clear the whole scene
- function makeScene() {
- var myScene = new THREE.Scene();
- var grid1 = makeGrid(10, 10, "lightgray");
- grid1.position.z = -5;
- myScene.add(grid1);
-
- var grid2 = makeGrid(10, 10, "lightgray");
- grid2.rotation.x = Math.PI/2;
- grid2.position.y = -5;
- myScene.add(grid2);
- var grid3 = makeGrid(10, 10, "lightgray");
- grid3.rotation.y = Math.PI/2;
- grid3.position.x = -5;
- myScene.add(grid3);
- return myScene;
- }
-
-
- // Render the current frame to the screen
- function render() {
- renderer.render(scene, camera);
- }
-
- // This is the main control loop
- function loopForever() {
- controls.update();
- requestAnimationFrame(loopForever);
- }
-
-
- // This just organises kickoff
- function startMainLoop() {
- scene = makeScene();
- controls.addEventListener("change", render);
- poll();
- loopForever();
- }
-
-
- // Called on startup
- function init() {
- // Measure things, get references
- var width = window.innerWidth;
- var height = window.innerHeight;
-
- // Renderer
- renderer = new THREE.WebGLRenderer({"antialias":true});
- renderer.setSize(width, height);
- renderer.setClearColor(0xffffff, 1);
- document.querySelector("body").appendChild(renderer.domElement);
-
- // Time to load the materials
- loadMaterials();
-
- // Camera, controls, raycaster
- camera = new THREE.PerspectiveCamera(45, width / height, 0.3, 100);
- controls = new THREE.OrbitControls(camera);
-
- // Center the camera
- controls.center.set(0, 0, 0);
- controls.rotateSpeed = 0.2;
- camera.position.set(0, 0, 20);
-
- // Start polling
- setInterval(poll, 1000);
-
- // Run
- startMainLoop();
- }
|