提交 c74fa04f 编写于 作者: M Mr.doob

Simplified Object3D.toJSON()

上级 8c1a2695
......@@ -595,8 +595,7 @@ THREE.Object3D.prototype = {
var isRootObject = ( meta === undefined );
var data = {};
var output = { object: data };
var output = {};
// meta is a hash used to collect geometries, materials.
// not providing it implies that this is the root object
......@@ -621,26 +620,40 @@ THREE.Object3D.prototype = {
// standard Object3D serialization
data.uuid = this.uuid;
data.type = this.type;
var object = {};
if ( this.name !== '' ) data.name = this.name;
if ( JSON.stringify( this.userData ) !== '{}' ) data.userData = this.userData;
if ( this.visible !== true ) data.visible = this.visible;
object.uuid = this.uuid;
object.type = this.type;
data.matrix = this.matrix.toArray();
if ( this.name !== '' ) object.name = this.name;
if ( JSON.stringify( this.userData ) !== '{}' ) object.userData = this.userData;
if ( this.visible !== true ) object.visible = this.visible;
object.matrix = this.matrix.toArray();
//
if ( this.geometry && meta.geometries[ this.geometry.uuid ] === undefined ) {
if ( this.geometry !== undefined ) {
if ( meta.geometries[ this.geometry.uuid ] === undefined ) {
meta.geometries[ this.geometry.uuid ] = this.geometry.toJSON( meta );
}
meta.geometries[ this.geometry.uuid ] = this.geometry.toJSON( meta );
object.geometry = this.geometry.uuid;
}
if ( this.material && meta.materials[ this.material.uuid ] === undefined ) {
if ( this.material !== undefined ) {
meta.materials[ this.material.uuid ] = this.material.toJSON( meta );
if ( meta.materials[ this.material.uuid ] === undefined ) {
meta.materials[ this.material.uuid ] = this.material.toJSON( meta );
}
object.material = this.material.uuid;
}
......@@ -648,11 +661,11 @@ THREE.Object3D.prototype = {
if ( this.children.length > 0 ) {
data.children = [];
object.children = [];
for ( var i = 0; i < this.children.length; i ++ ) {
data.children.push( this.children[ i ].toJSON( meta ).object );
object.children.push( this.children[ i ].toJSON( meta ).object );
}
......@@ -672,6 +685,8 @@ THREE.Object3D.prototype = {
}
output.object = object;
return output;
// extract data from the cache hash
......
......@@ -181,17 +181,6 @@ THREE.Line.prototype.clone = function () {
};
THREE.Line.prototype.toJSON = function ( meta ) {
var data = THREE.Object3D.prototype.toJSON.call( this, meta );
data.object.geometry = this.geometry.uuid;
data.object.material = this.material.uuid;
return data;
};
// DEPRECATED
THREE.LineStrip = 0;
......
......@@ -354,14 +354,3 @@ THREE.Mesh.prototype.clone = function () {
return new this.constructor( this.geometry, this.material ).copy( this );
};
THREE.Mesh.prototype.toJSON = function ( meta ) {
var data = THREE.Object3D.prototype.toJSON.call( this, meta );
data.object.geometry = this.geometry.uuid;
data.object.material = this.material.uuid;
return data;
};
......@@ -126,17 +126,6 @@ THREE.Points.prototype.clone = function () {
};
THREE.Points.prototype.toJSON = function ( meta ) {
var data = THREE.Object3D.prototype.toJSON.call( this, meta );
data.object.geometry = this.geometry.uuid;
data.object.material = this.material.uuid;
return data;
};
// Backwards compatibility
THREE.PointCloud = function ( geometry, material ) {
......
......@@ -66,16 +66,6 @@ THREE.Sprite.prototype.clone = function () {
};
THREE.Sprite.prototype.toJSON = function ( meta ) {
var data = THREE.Object3D.prototype.toJSON.call( this, meta );
data.object.material = this.material.uuid;
return data;
};
// Backwards compatibility
THREE.Particle = THREE.Sprite;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册