58 lines
2.0 KiB
JavaScript
58 lines
2.0 KiB
JavaScript
var fs = require('fs');
|
|
var sleep = require('sleep');
|
|
|
|
module.exports = function(io) {
|
|
io.on('connection', function(socket) {
|
|
console.log(socket + " connected !");
|
|
|
|
socket.on('disconnect', function() {
|
|
console.log(socket + " disconnected !");
|
|
});
|
|
|
|
socket.on("request", function(res) {
|
|
console.log('Asking for static/data/spheres/' + res + '.obj');
|
|
|
|
fs.readFile('static/data/spheres/' + res + '.obj.obj', function(err, data) {
|
|
var lines = data.toString('utf-8').split("\n");
|
|
var vIndex = 0;
|
|
var fIndex = 0;
|
|
for (i = 0, iMax = lines.length; i < iMax; i++ ) {
|
|
if (lines[i][0] === 'v') {
|
|
var arr = lines[i].split(" ");
|
|
arr[0] = vIndex++;
|
|
arr[1] = parseFloat(arr[1]);
|
|
arr[2] = parseFloat(arr[2]);
|
|
arr[3] = parseFloat(arr[3]);
|
|
(function (arr) {
|
|
setTimeout(function() {
|
|
socket.emit('vertex', arr);
|
|
}, i*100);
|
|
})(arr);
|
|
} else if (lines[i][0] === 'f') {
|
|
fIndex++;
|
|
var arr = lines[i].split(" ");
|
|
arr.shift();
|
|
arr[0]--;
|
|
arr[1]--;
|
|
arr[2]--;
|
|
|
|
if (arr[3]) {
|
|
arr[3]--;
|
|
fIndex++;
|
|
}
|
|
|
|
(function (arr) {
|
|
setTimeout(function() {
|
|
socket.emit('face', arr);
|
|
},i*100);
|
|
})(arr);
|
|
|
|
}
|
|
}
|
|
socket.emit('finished', fIndex);
|
|
// socket.disconnect();
|
|
});
|
|
});
|
|
});
|
|
}
|