|
@@ -48,6 +48,8 @@ THREE.SceneLoader2.prototype = {
|
|
|
|
|
|
var scene = new THREE.Scene();
|
|
|
|
|
|
+ // geometries
|
|
|
+
|
|
|
var geometries = [];
|
|
|
var loader = new THREE.JSONLoader();
|
|
|
|
|
@@ -57,6 +59,10 @@ THREE.SceneLoader2.prototype = {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ // materials
|
|
|
+
|
|
|
+ // objects
|
|
|
+
|
|
|
var parseObject = function ( array, parent ) {
|
|
|
|
|
|
for ( var i = 0, l = array.length; i < l; i ++ ) {
|
|
@@ -66,7 +72,7 @@ THREE.SceneLoader2.prototype = {
|
|
|
|
|
|
switch ( data.type ) {
|
|
|
|
|
|
- case "PerspectiveCamera":
|
|
|
+ case 'PerspectiveCamera':
|
|
|
|
|
|
object = new THREE.PerspectiveCamera( data.fov, data.aspect, data.near, data.far );
|
|
|
object.name = data.name;
|
|
@@ -77,7 +83,61 @@ THREE.SceneLoader2.prototype = {
|
|
|
|
|
|
break;
|
|
|
|
|
|
- case "Mesh":
|
|
|
+ case 'OrthographicCamera':
|
|
|
+
|
|
|
+ object = new THREE.OrthographicCamera( data.left, data.right, data.top, data.bottom, data.near, data.far );
|
|
|
+ object.name = data.name;
|
|
|
+ object.position.fromArray( data.position );
|
|
|
+ object.rotation.fromArray( data.rotation );
|
|
|
+ object.userData = data.userData;
|
|
|
+ parent.add( object );
|
|
|
+
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'AmbientLight':
|
|
|
+
|
|
|
+ object = new THREE.AmbientLight( data.color );
|
|
|
+ object.name = data.name;
|
|
|
+ parent.add( object );
|
|
|
+
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'DirectionalLight':
|
|
|
+
|
|
|
+ object = new THREE.DirectionalLight( data.color, data.intensity );
|
|
|
+ object.name = data.name;
|
|
|
+ object.position.fromArray( data.position );
|
|
|
+ parent.add( object );
|
|
|
+
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'PointLight':
|
|
|
+
|
|
|
+ object = new THREE.PointLight( data.color, data.intensity );
|
|
|
+ object.name = data.name;
|
|
|
+ object.position.fromArray( data.position );
|
|
|
+ parent.add( object );
|
|
|
+
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'SpotLight':
|
|
|
+
|
|
|
+ object = new THREE.SpotLight( data.color, data.intensity );
|
|
|
+ object.name = data.name;
|
|
|
+ object.position.fromArray( data.position );
|
|
|
+ parent.add( object );
|
|
|
+
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'HemisphereLight':
|
|
|
+
|
|
|
+ object = new THREE.HemisphereLight( data.color );
|
|
|
+ object.name = data.name;
|
|
|
+ parent.add( object );
|
|
|
+
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'Mesh':
|
|
|
|
|
|
object = new THREE.Mesh( geometries[ data.geometry ].geometry ); // TODO: Material
|
|
|
object.name = data.name;
|
|
@@ -93,6 +153,9 @@ THREE.SceneLoader2.prototype = {
|
|
|
|
|
|
object = new THREE.Object3D();
|
|
|
object.name = data.name;
|
|
|
+ object.position.fromArray( data.position );
|
|
|
+ object.rotation.fromArray( data.rotation );
|
|
|
+ object.scale.fromArray( data.scale );
|
|
|
object.userData = data.userData;
|
|
|
parent.add( object );
|
|
|
|