Skip to content

Commit

Permalink
Update to support newer Three.js API and Blender-exported models
Browse files Browse the repository at this point in the history
  • Loading branch information
bcongdon committed Jul 22, 2017
1 parent d658eee commit eb320d4
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
3 changes: 1 addition & 2 deletions src/x3d-loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ module.exports = function (THREE) {

var scope = this;

var loader = new THREE.XHRLoader(this.manager);
loader.setCrossOrigin(this.crossOrigin);
var loader = new THREE.FileLoader(this.manager);
loader.load(url, function (text) {
onLoad(scope.parse(text));
}, onProgress, onError);
Expand Down
15 changes: 10 additions & 5 deletions src/x3d-parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ function renderX3D(THREE, x3dXml, scene, useImageTexture) {
var groundGeometry = new THREE.SphereGeometry(radius, segments, segments, 0, 2 * Math.PI, 0.5 * Math.PI, 1.5 * Math.PI);
var groundMaterial = new THREE.MeshBasicMaterial({ fog: false, side: THREE.BackSide, vertexColors: THREE.VertexColors });

paintFaces(groundGeometry, radius, data.groundAngle, data.groundColor, false);
paintFaces(groundGeometry, radius, data.groundAngle || [], data.groundColor, false);

scene.add(new THREE.Mesh(groundGeometry, groundMaterial));

Expand Down Expand Up @@ -545,19 +545,24 @@ function renderX3D(THREE, x3dXml, scene, useImageTexture) {

var tree = { 'string': 'Scene', children: [] };

parseChildren(x3dXml.documentElement.childNodes[1], tree);

return tree;
for(var i = 0; i < x3dXml.documentElement.childNodes.length; i++) {
if(x3dXml.documentElement.childNodes[i].nodeName === 'Scene') {
parseChildren(x3dXml.documentElement.childNodes[i], tree);
return tree;
}
}
console.error("Unable to find Scene element in X3D document")

};

var parseChildren = function (parentNode, parentResult) {
for (var i = 0; i < parentNode.childNodes.length; i++) {
var currentNode = parentNode.childNodes[i];
if (currentNode.nodeType !== 3) {
var nodeAttr = currentNode.attributes[0] || {}
var newChild = {
'nodeType': currentNode.nodeName.toLocaleLowerCase(),
'string': getNodeGroup(currentNode.nodeName) + ' ' + currentNode.nodeName.toLocaleLowerCase(),
'string': getNodeGroup(currentNode.nodeName) + ' ' + currentNode.nodeName.toLocaleLowerCase() + ' ' + nodeAttr.nodeName + ' ' + nodeAttr.nodeValue,
'parent': parentResult,
'children': []
};
Expand Down

0 comments on commit eb320d4

Please sign in to comment.