Put in some async
This commit is contained in:
parent
821ca9ef10
commit
44939959f6
|
@ -26,73 +26,78 @@ var ProgressiveLoader = function(res, scene) {
|
||||||
// When receiving elements
|
// When receiving elements
|
||||||
socket.on('elements', function(arr) {
|
socket.on('elements', function(arr) {
|
||||||
|
|
||||||
// We'll receive an array of string (obj)
|
// Launch this code in async
|
||||||
for (var i = 0; i < arr.length; i++) {
|
setTimeout(function() {
|
||||||
|
|
||||||
var line = arr[i];
|
// We'll receive an array of string (obj)
|
||||||
|
for (var i = 0; i < arr.length; i++) {
|
||||||
|
|
||||||
// console.log(line);
|
var line = arr[i];
|
||||||
|
|
||||||
if (line[0] === 'v') {
|
// console.log(line);
|
||||||
|
|
||||||
var elts = line.split(' ');
|
if (line[0] === 'v') {
|
||||||
|
|
||||||
mesh.geometry.vertices.push(new THREE.Vector3(
|
var elts = line.split(' ');
|
||||||
parseFloat(elts[1]),
|
|
||||||
parseFloat(elts[2]),
|
|
||||||
parseFloat(elts[3])
|
|
||||||
));
|
|
||||||
|
|
||||||
mesh.geometry.verticesNeedUpdate = true;
|
mesh.geometry.vertices.push(new THREE.Vector3(
|
||||||
|
parseFloat(elts[1]),
|
||||||
|
parseFloat(elts[2]),
|
||||||
|
parseFloat(elts[3])
|
||||||
|
));
|
||||||
|
|
||||||
} else if (line[0] === 'f') {
|
mesh.geometry.verticesNeedUpdate = true;
|
||||||
|
|
||||||
var elts = line.split(' ');
|
} else if (line[0] === 'f') {
|
||||||
|
|
||||||
elts[1] = parseInt(elts[1]) - 1;
|
var elts = line.split(' ');
|
||||||
elts[2] = parseInt(elts[2]) - 1;
|
|
||||||
elts[3] = parseInt(elts[3]) - 1;
|
|
||||||
|
|
||||||
if (elts[4])
|
elts[1] = parseInt(elts[1]) - 1;
|
||||||
elts[4] = parseInt(elts[4]) - 1;
|
elts[2] = parseInt(elts[2]) - 1;
|
||||||
|
elts[3] = parseInt(elts[3]) - 1;
|
||||||
|
|
||||||
mesh.geometry.faces.push(new THREE.Face3(
|
if (elts[4])
|
||||||
parseInt(elts[1]),
|
elts[4] = parseInt(elts[4]) - 1;
|
||||||
parseInt(elts[2]),
|
|
||||||
parseInt(elts[3])
|
|
||||||
));
|
|
||||||
|
|
||||||
// If the face has 4 vertices, create second triangle
|
|
||||||
if (elts[4]) {
|
|
||||||
|
|
||||||
mesh.geometry.faces.push(new THREE.Face3(
|
mesh.geometry.faces.push(new THREE.Face3(
|
||||||
parseInt(elts[1]),
|
parseInt(elts[1]),
|
||||||
parseInt(elts[3]),
|
parseInt(elts[2]),
|
||||||
parseInt(elts[4])
|
parseInt(elts[3])
|
||||||
));
|
));
|
||||||
|
|
||||||
}
|
// If the face has 4 vertices, create second triangle
|
||||||
|
if (elts[4]) {
|
||||||
|
|
||||||
|
mesh.geometry.faces.push(new THREE.Face3(
|
||||||
|
parseInt(elts[1]),
|
||||||
|
parseInt(elts[3]),
|
||||||
|
parseInt(elts[4])
|
||||||
|
));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add mesh to scene one there are a few faces in it
|
||||||
|
if (!added) {
|
||||||
|
scene.add(mesh);
|
||||||
|
added = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Add mesh to scene one there are a few faces in it
|
|
||||||
if (!added) {
|
|
||||||
scene.add(mesh);
|
|
||||||
added = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
mesh.geometry.computeFaceNormals();
|
||||||
|
mesh.geometry.groupsNeedUpdate = true;
|
||||||
|
mesh.geometry.elementsNeedUpdate = true;
|
||||||
|
mesh.geometry.normalsNeedUpdate = true;
|
||||||
|
|
||||||
mesh.geometry.computeFaceNormals();
|
if (!finished) {
|
||||||
mesh.geometry.groupsNeedUpdate = true;
|
socket.emit('next');
|
||||||
mesh.geometry.elementsNeedUpdate = true;
|
} else {
|
||||||
mesh.geometry.normalsNeedUpdate = true;
|
console.log("Finished");
|
||||||
|
}
|
||||||
|
|
||||||
if (!finished) {
|
},0);
|
||||||
socket.emit('next');
|
|
||||||
} else {
|
|
||||||
console.log("Finished");
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on('finished', function(arg) {
|
socket.on('finished', function(arg) {
|
||||||
|
|
Loading…
Reference in New Issue