3d-interface/socket.js

58 lines
2.0 KiB
JavaScript
Raw Normal View History

2015-06-09 17:40:58 +02:00
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]);
2015-06-09 18:04:16 +02:00
(function (arr) {
setTimeout(function() {
2015-06-09 17:40:58 +02:00
socket.emit('vertex', arr);
2015-06-09 18:07:27 +02:00
}, i*100);
2015-06-09 18:04:16 +02:00
})(arr);
2015-06-09 17:40:58 +02:00
} 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++;
}
2015-06-09 18:04:16 +02:00
(function (arr) {
setTimeout(function() {
2015-06-09 17:40:58 +02:00
socket.emit('face', arr);
2015-06-09 18:07:27 +02:00
},i*100);
2015-06-09 18:04:16 +02:00
})(arr);
2015-06-09 17:40:58 +02:00
}
}
socket.emit('finished', fIndex);
// socket.disconnect();
});
});
});
}