未验证 提交 d2b154f8 编写于 作者: M Mr.doob 提交者: GitHub

Merge pull request #11596 from takahirox/MorphAttributeSerialization

Add morphAttributes serialization support to BufferGeometry
......@@ -980,7 +980,7 @@ BufferGeometry.prototype = Object.assign( Object.create( EventDispatcher.prototy
}
data.data = { attributes: {} };
data.data = { attributes: {}, morphAttributes: {} };
var index = this.index;
......@@ -1012,6 +1012,32 @@ BufferGeometry.prototype = Object.assign( Object.create( EventDispatcher.prototy
}
var morphAttributes = this.morphAttributes;
for ( var key in morphAttributes ) {
var attributeArray = this.morphAttributes[ key ];
var array = [];
for ( var i = 0, il = attributeArray.length; i < il; i ++ ) {
var attribute = attributeArray[ i ];
array.push( {
name: attribute.name,
itemSize: attribute.itemSize,
type: attribute.array.constructor.name,
array: Array.prototype.slice.call( attribute.array ),
normalized: attribute.normalized
} );
}
data.data.morphAttributes[ key ] = array;
}
var groups = this.groups;
if ( groups.length > 0 ) {
......
......@@ -55,6 +55,29 @@ Object.assign( BufferGeometryLoader.prototype, {
}
var morphAttributes = json.data.morphAttributes;
for ( var key in morphAttributes ) {
var attributeArray = morphAttributes[ key ];
var array = [];
for ( var i = 0, il = attributeArray.length; i < il; i ++ ) {
var attribute = attributeArray[ i ];
var typedArray = new TYPED_ARRAYS[ attribute.type ]( attribute.array );
var bufferAttribute = new BufferAttribute( typedArray, attribute.itemSize, attribute.normalized );
if ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;
array.push( bufferAttribute );
}
geometry.morphAttributes[ key ] = array;
}
var groups = json.data.groups || json.data.drawcalls || json.data.offsets;
if ( groups !== undefined ) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册