declarations
Version:
[](https://www.npmjs.com/package/declarations)
117 lines (70 loc) • 2.8 kB
text/typescript
/// <reference path="../../three.d.ts" />
/// <reference path="../three-tests-setup.ts" />
// https://github.com/mrdoob/three.js/blob/master/examples/webgl_loader_awd.html
() => {
// ------- variable definitions that does not exist in the original code. These are for typescript.
// -------
if (!Detector.webgl) Detector.addGetWebGLMessage();
var container, stats;
var camera, scene, renderer, objects, controls;
var particleLight, pointLight;
var trunk;
var loader = new THREE.AWDLoader();
loader.materialFactory = createMaterial;
loader.load('./models/awd/simple/simple.awd', function (_trunk) {
trunk = _trunk;
init();
render();
});
function createMaterial(name) {
// console.log( name );
// var mat = new THREE.MeshPhongMaterial({
// color: 0xaaaaaa,
// shininess: 20
// });
// return mat;
return null;
}
function init() {
container = document.createElement('div');
document.body.appendChild(container);
camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 2000);
camera.position.set(70, 50, -100);
controls = new THREE.OrbitControls(camera);
scene = new THREE.Scene();
// Add the AWD SCENE
scene.add(trunk);
// Lights
scene.add(new THREE.AmbientLight(0x606060));
var directionalLight = new THREE.DirectionalLight(/*Math.random() * 0xffffff*/0xeeeeee);
directionalLight.position.set(.2, -1, .2);
directionalLight.position.normalize();
scene.add(directionalLight);
pointLight = new THREE.PointLight(0xffffff, .6);
scene.add(pointLight);
renderer = new THREE.WebGLRenderer();
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(window.innerWidth, window.innerHeight);
container.appendChild(renderer.domElement);
stats = new Stats();
stats.domElement.style.position = 'absolute';
stats.domElement.style.top = '0px';
container.appendChild(stats.domElement);
//
window.addEventListener('resize', onWindowResize, false);
}
function onWindowResize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
}
function render() {
requestAnimationFrame(render);
var timer = Date.now() * 0.0005;
pointLight.position.x = Math.sin(timer * 4) * 3000;
pointLight.position.y = 600
pointLight.position.z = Math.cos(timer * 4) * 3000;
renderer.render(scene, camera);
stats.update();
}
}