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

ColladaLoader2: Clean up.

上级 ffeb5c42
......@@ -166,7 +166,7 @@ THREE.ColladaLoader.prototype = {
case 'polylist':
case 'triangles':
data.primitive = parsePrimitive( child );
data.primitive = parseGeometryPrimitive( child );
break;
default:
......@@ -176,50 +176,7 @@ THREE.ColladaLoader.prototype = {
}
return createGeometry( data );
}
function parsePrimitive( xml ) {
var primitive = {
inputs: {},
stride: 0
};
for ( var i = 0; i < xml.childNodes.length; i ++ ) {
var child = xml.childNodes[ i ];
if ( child.nodeType !== 1 ) continue;
switch ( child.nodeName ) {
case 'input':
var id = parseId( child.getAttribute( 'source' ) );
var semantic = child.getAttribute( 'semantic' );
var offset = parseInt( child.getAttribute( 'offset' ) );
primitive.inputs[ semantic ] = { id: id, offset: offset };
primitive.stride = Math.max( primitive.stride, offset + 1 );
break;
case 'vcount':
primitive.vcount = parseInts( child.textContent );
break;
case 'p':
primitive.p = parseInts( child.textContent );
break;
}
}
return primitive;
}
function createGeometry( data ) {
//
if ( data.primitive === undefined ) return;
......@@ -330,6 +287,45 @@ THREE.ColladaLoader.prototype = {
}
function parseGeometryPrimitive( xml ) {
var primitive = {
inputs: {},
stride: 0
};
for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) {
var child = xml.childNodes[ i ];
if ( child.nodeType !== 1 ) continue;
switch ( child.nodeName ) {
case 'input':
var id = parseId( child.getAttribute( 'source' ) );
var semantic = child.getAttribute( 'semantic' );
var offset = parseInt( child.getAttribute( 'offset' ) );
primitive.inputs[ semantic ] = { id: id, offset: offset };
primitive.stride = Math.max( primitive.stride, offset + 1 );
break;
case 'vcount':
primitive.vcount = parseInts( child.textContent );
break;
case 'p':
primitive.p = parseInts( child.textContent );
break;
}
}
return primitive;
}
// nodes
var material = new THREE.MeshPhongMaterial();
......@@ -405,7 +401,7 @@ THREE.ColladaLoader.prototype = {
if ( node.camera !== undefined ) {
object = node.camera;
object = node.camera.clone();
} else if ( node.geometry !== undefined ) {
......@@ -424,7 +420,7 @@ THREE.ColladaLoader.prototype = {
for ( var i = 0, l = children.length; i < l; i ++ ) {
object.add( node.children[ i ] );
object.add( children[ i ] );
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册