DAT simple
with orbitControls, XZgrid, info
by Rebecca Chen
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r70/three.min.js"></script>
<script src="https://dl.dropboxusercontent.com/u/3587259/Code/Threejs/OrbitControls.js">
</script>
<script src="//cdnjs.cloudflare.com/ajax/libs/dat-gui/0.5.1/dat.gui.min.js"></script>
<div id='info'>info</div>
<div id='guiContainer'></div>
<canvas id="mycanvas"></canvas>
<div id='hud'></div>
CSS
#mycanvas {
top: 0px;
width: 100%;
height: 100%;
padding: 2px;
text-align: center;
color: #ffff00;
border: solid 1px red;
}
#guiContainer {
z-index: 9999;
position: absolute;
top: 10%;
right: 5%;
}
#info {
top: 0;
border: solid 1px green;
position: absolute;
z-index: 999;
width=100%;
height: 40px;
font-size: 30px;
left: 0;
right: 0;
text-align: center;
}
#hud {
bottom: 10px;
width: 100%;
color: #ffff00;
text-align: center;
position: absolute;
}
body {
overflow: hidden;
}
JavaScript
var camera, scene, renderer, geometry, material, mesh, light, controls;
var angle = 0;
var gcontrols;
var hud;
var mouseDown = false;
init();
animate();
function init() {
hud = document.getElementById('hud');
var mycanvas = document.getElementById('mycanvas');
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.z = 500;
scene.add(camera);
geometry = new THREE.BoxGeometry(100, 20, 20);
material = new THREE.MeshLambertMaterial();
mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
light = new THREE.PointLight(0xffffff);
light.position.set(100, 300, 200);
scene.add(light);
var gridXZ = new THREE.GridHelper(100, 10);
gridXZ.setColors(new THREE.Color(0xff0000), new THREE.Color(0xffffff));
scene.add(gridXZ);
renderer = new THREE.WebGLRenderer({
canvas: mycanvas
});
// renderer.canvas = mycanvas; wont work ..
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(0x888888);
controls = new THREE.OrbitControls(camera, renderer.domElement);
//document.body.appendChild(renderer.domElement); .. not needed
// if canvas is supplied...
// if canvas is not supplied, a Canvas is creaated as renderer's domElement
// A Canvas where the renderer draws its output.
// This is automatically created by the renderer in the constructor (if not provided already); you just need to add it to your page.
// building a "gcontrol" object
/*
gcontrols = new function () {
this.speed = 1.2;
this.turn = false;
}
*/
// fraction digits display has to do with
// the initial values
// if positive (>0): then display as fraction
// if non-positive (<=0) then display as integer
gcontrols = {
speed: 0.5,
turn: false,
type: 'a'
};
var gui = new dat.GUI({
autoPlace: false
});
document.getElementById('guiContainer').appendChild(gui.domElement);
...