Select Git revision
Descriptors.c
-
Dean Camera authored
Update all demos, projects and bootloaders to indent all function parameters, one per line, for better readability. Add missing const qualifiers to the demos.
Dean Camera authoredUpdate all demos, projects and bootloaders to indent all function parameters, one per line, for better readability. Add missing const qualifiers to the demos.
ThreeModel.js 3.14 KiB
/**
* Created by aghassaei on 1/17/15.
*/
function ThreeModel(){
var camera = new THREE.PerspectiveCamera(60, window.innerWidth/window.innerHeight, 1, 10000);
var scene = new THREE.Scene();
var renderer = new THREE.WebGLRenderer({antialias:true});//antialiasing is not supported in ff and on mac+chrome
//store all meshes to highlight
var cells = [];
var parts = [];
var basePlane = [];
initialize();
function initialize(){
camera.position.x = 125;
camera.position.y = 100;
camera.position.z = 165;
camera.up.set(0,0,1);//set z axis as "up"
scene.fog = new THREE.FogExp2(0xcccccc, 0.000);
// lights
var light = new THREE.DirectionalLight(0xffffff);
light.position.set(1, 1, 1);
scene.add(light);
light = new THREE.DirectionalLight(0x002288);
light.position.set(-1, -1, -1);
scene.add(light);
light = new THREE.AmbientLight(0x222222);
scene.add(light);
// renderer
renderer.setClearColor(scene.fog.color, 1);
renderer.setSize(window.innerWidth, window.innerHeight);
window.addEventListener('resize', onWindowResize, false);
}
function onWindowResize(){
camera.aspect = window.innerWidth/window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
render();
}
function sceneAdd(object, type){
scene.add(object);
if (type == "cell"){
cells.push(object.children[0]);
} else if (type == "part"){
parts.push(object);
} else if (type == "basePlane"){
basePlane.push(object);
}
}
function sceneRemove(object, type){
var objectToRemove = getParentObject(object);
if (type == "cell"){
cells.splice(cells.indexOf(objectToRemove.children[0]), 1);
} else if (type == "part"){
parts.splice(parts.indexOf(objectToRemove), 1);
} else if (type == "basePlane"){
basePlane.splice(0, basePlane.length);//delete array without removing reference
}
scene.remove(objectToRemove);
}
function removeAllCells(){
_.each(cells, function(cell){
var objectToRemove = getParentObject(cell);
scene.remove(objectToRemove);
});
_.each(parts, function(part){
scene.remove(part);
});
cells.splice(0, cells.length);
parts.splice(0, parts.length);
}
function getParentObject(object){
var objectToRemove = object;
if (object.parent && object.parent.type != "Scene") {
objectToRemove = object.parent;
}
return objectToRemove;
}
function render(){
renderer.render(scene, camera);
}
return {//return public properties/methods
render: render,
sceneRemove: sceneRemove,
sceneAdd: sceneAdd,
// scene: scene,
domElement: renderer.domElement,
camera: camera,
cells: cells,
parts: parts,
basePlane: basePlane,
removeAllCells: removeAllCells
}
}