Some cleaning 😢
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
"use strict";
|
||||
|
||||
let fs = require('fs');
|
||||
|
||||
class OutOfBoundError extends Error {
|
||||
constructor(matrix, i, j) {
|
||||
super(`Index array out of bound (${i},${j}) exceeds (${matrix.lines}, ${matrix.columns}).`);
|
||||
this.name = 'OutOfBoundError';
|
||||
}
|
||||
}
|
||||
|
||||
class Matrix {
|
||||
constructor(lines, columns) {
|
||||
// this.lines = lines;
|
||||
// this.columns = columns;
|
||||
|
||||
this.data = [];
|
||||
|
||||
for (let i = 0; i < lines; i++) {
|
||||
let line = [];
|
||||
for (let j = 0; j < columns; j++) {
|
||||
line.push(0);
|
||||
}
|
||||
this.data.push(line);
|
||||
}
|
||||
}
|
||||
|
||||
get(i, j) {
|
||||
// if (i >= this.lines || j >= this.columns || i < 0 || j < 0 ) {
|
||||
// this._throwOutOfBoundError(i,j);
|
||||
// }
|
||||
return this.data[i][j];
|
||||
}
|
||||
|
||||
set(i, j, value) {
|
||||
// if (i >= this.lines || j >= this.columns || i < 0 || j < 0 ) {
|
||||
// this._throwOutOfBoundError(i,j);
|
||||
// }
|
||||
return this.data[i][j] = value;
|
||||
}
|
||||
|
||||
print(type) {
|
||||
if (type === 'matlab') {
|
||||
|
||||
let maxColumns = 0;
|
||||
|
||||
for (let i = 0; i < this.data.length; i++) {
|
||||
if (this.data[i].length > maxColumns)
|
||||
maxColumns = this.data[i].length;
|
||||
}
|
||||
|
||||
let str = '[';
|
||||
|
||||
for (let i = 0; i < this.data.length; i++) {
|
||||
str += '[';
|
||||
for (let j = 0; j < maxColumns; j++) {
|
||||
str +=
|
||||
(this.data[i][j] !== undefined ? this.data[i][j] : 0) +
|
||||
(j === maxColumns - 1 ? ']' : ',');
|
||||
}
|
||||
str += (i === this.data.length - 1 ? ']' : ';');
|
||||
}
|
||||
|
||||
console.log(str + ';');
|
||||
|
||||
return;
|
||||
}
|
||||
// for (let i = 0; i < this.lines; i++) {
|
||||
// for (let j = 0; j < this.columns; j++) {
|
||||
// process.stdout.write(this.get(i,j) + ' ');
|
||||
// }
|
||||
// process.stdout.write('\n');
|
||||
// }
|
||||
}
|
||||
|
||||
toArray() {
|
||||
return this.data;
|
||||
}
|
||||
|
||||
fromArray(array) {
|
||||
|
||||
// if (! array instanceof Array)
|
||||
// throw new TypeError('Parameter is not an array');
|
||||
|
||||
// let columns = null;
|
||||
// for (let line of array) {
|
||||
// if (! line instanceof Array)
|
||||
// throw new TypeError('Parameter is not an array of array');
|
||||
|
||||
// if (columns === null) {
|
||||
// columns = line.length;
|
||||
// } else if (columns !== line.length) {
|
||||
// throw new Typerror('The lines have not the same size');
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
this.data = array;
|
||||
|
||||
// this.columns = columns;
|
||||
// this.lines = array.length;
|
||||
|
||||
}
|
||||
|
||||
saveToFile(path, type) {
|
||||
if (type === 'matlab') {
|
||||
fs.writeFileSync(path, JSON.stringify(this.data).replace('],', '];'));
|
||||
return;
|
||||
}
|
||||
fs.writeFileSync(path, JSON.stringify(this.data));
|
||||
}
|
||||
|
||||
loadFromFile(path) {
|
||||
this.fromArray(JSON.parse(fs.readFileSync(path, 'utf-8')));
|
||||
}
|
||||
|
||||
_throwOutOfBoundError(i,j) {
|
||||
throw new OutOfBoundError(this, i, j);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = Matrix;
|
||||
|
||||
function main() {
|
||||
|
||||
var m = new Matrix(2,3);
|
||||
m.set(1,2,3);
|
||||
m.print();
|
||||
m.saveToFile('tests/myMatrix.json');
|
||||
|
||||
console.log('----');
|
||||
|
||||
var m2 = new Matrix();
|
||||
m2.loadFromFile('tests/myMatrix.json');
|
||||
m2.print();
|
||||
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
main();
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
var Log = {};
|
||||
|
||||
var Colors = Object.freeze({
|
||||
DEFAULT: '\033[0m',
|
||||
BLACK: '\033[30m',
|
||||
RED: '\033[31m',
|
||||
GREEN: '\033[32m',
|
||||
YELLOW: '\033[33m',
|
||||
BLUE: '\033[34m',
|
||||
MAGENTA: '\033[35m',
|
||||
CYAN: '\033[36m',
|
||||
ORANGE: '\033[38;5;202m',
|
||||
});
|
||||
|
||||
var isDev = require('express')().get('env') === 'development';
|
||||
|
||||
var log;
|
||||
|
||||
if (isDev) {
|
||||
log = function(elt, color) {
|
||||
console.log(color + elt + Colors.DEFAULT);
|
||||
};
|
||||
} else {
|
||||
log = function(elt, color) {
|
||||
console.log(elt);
|
||||
};
|
||||
}
|
||||
|
||||
Log.ready = function(msg) {
|
||||
log('[RDY] ' + new Date() + ' ' + msg, Colors.GREEN);
|
||||
};
|
||||
|
||||
Log.request = function(req, res, time) {
|
||||
if (req.headers['x-forwarded-for'] !== undefined || isDev) {
|
||||
log(
|
||||
'[REQ] ' + new Date() + ' ' +
|
||||
(req.headers['x-forwarded-for'] || req.connection.remoteAddress) +
|
||||
(time !== undefined ? (' in ' + (" " + time).slice(-6) + ' ms') : '') +
|
||||
' : ' + (req.static && req.url !== '/favicon.ico' ? '/static' + req.url : req.url),
|
||||
req.static ? Colors.YELLOW : Colors.CYAN
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
Log.socket = {};
|
||||
Log.socket.connection = function(socket) {
|
||||
log(
|
||||
'[SOK] ' + new Date() + ' ' +
|
||||
(socket.handshake.headers['x-forwarded-for'] || socket.handshake.address) + ' connection',
|
||||
Colors.MAGENTA
|
||||
);
|
||||
};
|
||||
|
||||
Log.socket.disconnect = function(socket) {
|
||||
log(
|
||||
'[SOK] ' + new Date() + ' ' +
|
||||
(socket.handshake.headers['x-forwarded-for'] || socket.handshake.address) + ' disconnect',
|
||||
Colors.MAGENTA
|
||||
);
|
||||
};
|
||||
|
||||
Log.dberror = function(error) {
|
||||
log(
|
||||
'[DBE] ' + new Date() + ' ' + error,
|
||||
Colors.RED
|
||||
);
|
||||
};
|
||||
|
||||
Log.mailerror = function(error) {
|
||||
log(
|
||||
'[MLE] ' + new Date() + ' ' + error,
|
||||
Colors.RED
|
||||
);
|
||||
};
|
||||
|
||||
Log.debug = function(info, force) {
|
||||
if (isDev || force === true) {
|
||||
log(
|
||||
'[DBG] ' + (info !== undefined ? info : ''),
|
||||
Colors.ORANGE
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = Log;
|
||||
@@ -0,0 +1,101 @@
|
||||
"use strict";
|
||||
|
||||
let fs = require('fs');
|
||||
let THREE = require('three');
|
||||
let L3D = require('../static/js/l3d.min.js');
|
||||
|
||||
function serialize(object) {
|
||||
|
||||
let data = {};
|
||||
|
||||
data.vertices = object.children[0].geometry.vertices;
|
||||
|
||||
data.children = [];
|
||||
|
||||
for (let objChild of object.children) {
|
||||
|
||||
let newChild = {};
|
||||
|
||||
// newChild.faceVertexUvs = objChild.geometry.faceVertexUvs;
|
||||
newChild.faces = objChild.geometry.faces;
|
||||
|
||||
data.children.push(newChild);
|
||||
|
||||
}
|
||||
|
||||
return JSON.stringify(data);
|
||||
|
||||
}
|
||||
|
||||
function deserialize(str) {
|
||||
|
||||
let parse = JSON.parse(str);
|
||||
let vertices = [];
|
||||
let material = new THREE.MeshBasicMaterial();
|
||||
|
||||
let ret = new THREE.Object3D();
|
||||
|
||||
for (let vertex of parse.vertices) {
|
||||
|
||||
vertices.push(new THREE.Vector3(vertex.x, vertex.y, vertex.z));
|
||||
|
||||
}
|
||||
|
||||
|
||||
for (let parseChild of parse.children) {
|
||||
|
||||
let geometry = new THREE.Geometry();
|
||||
geometry.vertices = vertices;
|
||||
|
||||
for (let face of parseChild.faces) {
|
||||
|
||||
geometry.faces.push(new THREE.Face3(face.a, face.b, face.c));
|
||||
|
||||
}
|
||||
|
||||
geometry.computeBoundingSphere();
|
||||
let newChild = new THREE.Mesh(geometry, material);
|
||||
|
||||
ret.children.push(newChild);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
function serializeToFile(path, obj) {
|
||||
|
||||
fs.writeFileSync(path, serialize(obj));
|
||||
|
||||
}
|
||||
|
||||
function loadFromFile(path) {
|
||||
|
||||
return deserialize(fs.readFileSync(path, 'utf-8'));
|
||||
|
||||
}
|
||||
|
||||
module.exports.serialize = serialize;
|
||||
module.exports.deserialize = deserialize;
|
||||
module.exports.serializeToFile = serializeToFile;
|
||||
module.exports.loadFromFile = loadFromFile;
|
||||
|
||||
function main() {
|
||||
|
||||
let loader = new L3D.ProgressiveLoader(
|
||||
'/static/data/castle/princess peaches castle (outside).obj',
|
||||
new THREE.Object3D(),
|
||||
null
|
||||
);
|
||||
|
||||
loader.load(function() {
|
||||
console.log("Loaded");
|
||||
// console.log(loader.obj.children[0].geometry);
|
||||
deserialize(serialize(loader.obj));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
main();
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var express = require('express');
|
||||
var fs = require('fs');
|
||||
var Log = require('./NodeLog.js');
|
||||
|
||||
module.exports = function(parent){
|
||||
|
||||
Log.debug("Loading controllers :");
|
||||
|
||||
fs.readdirSync(__dirname + '/../controllers').forEach(function(name){
|
||||
|
||||
// index.js in controller, with function as pages (views.py for django)
|
||||
var obj = require('./../controllers/' + name + '/index');
|
||||
|
||||
// urls.js, just like django urls.py
|
||||
var urls = require('./../controllers/' + name + '/urls');
|
||||
name = obj.name || name;
|
||||
var app = express();
|
||||
|
||||
// allow specifying the view engine
|
||||
if (obj.engine) app.set('view engine', obj.engine);
|
||||
app.set('views', __dirname + '/../controllers/' + name + '/views');
|
||||
|
||||
// generate routes based
|
||||
// on the exported methods
|
||||
|
||||
Log.debug(' ' + name + ':');
|
||||
|
||||
for (var key in urls) {
|
||||
app.get(key, obj[urls[key]]);
|
||||
Log.debug(' ' + key + ' -> ' + name + '.' + urls[key]);
|
||||
|
||||
}
|
||||
|
||||
Log.debug();
|
||||
|
||||
// mount the app
|
||||
parent.use(app);
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,6 @@
|
||||
// Strict parseInt
|
||||
module.exports.filterInt = function(value) {
|
||||
if(/^(\-|\+)?([0-9]+|Infinity)$/.test(value))
|
||||
return Number(value);
|
||||
return NaN;
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
[[0,0.07894736842105263,0.18421052631578946,0,0.02631578947368421,0.02631578947368421,0,0.02631578947368421,0,0.13157894736842105,0.2894736842105263,0.2631578947368421],[0,0,0.10526315789473684,0.15789473684210525,0.18421052631578946,0.02631578947368421,0,0.07894736842105263,0.02631578947368421,0.05263157894736842,0.05263157894736842,0.05263157894736842],[0,0.02631578947368421,0,0.5,0.02631578947368421,0.02631578947368421,0.02631578947368421,0.07894736842105263,0.02631578947368421,0.07894736842105263,0.07894736842105263,0.05263157894736842],[0,0.05263157894736842,0.07894736842105263,0,0.4473684210526316,0.02631578947368421,0.13157894736842105,0.02631578947368421,0,0.07894736842105263,0,0.13157894736842105],[0,0,0.02631578947368421,0.15789473684210525,0,0.3157894736842105,0.21052631578947367,0.05263157894736842,0,0.07894736842105263,0,0.10526315789473684],[0,0.10526315789473684,0,0.05263157894736842,0.13157894736842105,0,0.13157894736842105,0.05263157894736842,0.15789473684210525,0.02631578947368421,0.02631578947368421,0.02631578947368421],[0,0.15789473684210525,0.10526315789473684,0,0,0.10526315789473684,0,0.05263157894736842,0.21052631578947367,0.13157894736842105,0,0],[0,0.07894736842105263,0.05263157894736842,0.02631578947368421,0.07894736842105263,0.07894736842105263,0.10526315789473684,0,0.07894736842105263,0.02631578947368421,0.02631578947368421,0.05263157894736842],[0,0,0.10526315789473684,0.02631578947368421,0.02631578947368421,0.18421052631578946,0.15789473684210525,0,0,0.21052631578947367,0.07894736842105263,0.07894736842105263],[0,0.07894736842105263,0.10526315789473684,0.02631578947368421,0,0,0.07894736842105263,0.15789473684210525,0.13157894736842105,0,0.21052631578947367,0.07894736842105263],[0,0.02631578947368421,0.10526315789473684,0.07894736842105263,0.05263157894736842,0.02631578947368421,0,0.02631578947368421,0.23684210526315788,0.07894736842105263,0,0.10526315789473684],[0,0.18421052631578946,0.13157894736842105,0.13157894736842105,0.10526315789473684,0.02631578947368421,0,0.13157894736842105,0.02631578947368421,0.05263157894736842,0.07894736842105263,0],]
|
||||
@@ -0,0 +1 @@
|
||||
[[0,0.03125,0.09375,0.5,0.21875,0.03125,0.09375,0.1875,0,0.125,0.15625,0],[0,0,0.15625,0.0625,0.21875,0.0625,0.15625,0.09375,0,0.0625,0.03125,0],[0,0.21875,0,0.0625,0.0625,0,0,0,0,0,0.03125,0.0625],[0,0.09375,0.0625,0,0.25,0.03125,0.1875,0.1875,0.03125,0.25,0,0.03125],[0,0.125,0.0625,0.125,0,0.03125,0,0,0.1875,0.09375,0.15625,0.0625],[0,0.03125,0,0,0,0,0.21875,0,0.25,0,0,0.1875],[0,0.03125,0.0625,0.0625,0.03125,0.34375,0,0.125,0.34375,0,0.40625,0.0625],[0,0.125,0,0.15625,0,0.0625,0.25,0,0.03125,0.09375,0,0],[0,0.125,0.03125,0.0625,0,0.1875,0.15625,0.03125,0,0.0625,0,0.25],[0,0.1875,0,0.125,0.125,0,0.0625,0.03125,0,0,0.03125,0.125],[0,0.0625,0.0625,0.03125,0.09375,0,0.46875,0.09375,0.03125,0.09375,0,0.1875],[0,0,0.0625,0.0625,0,0,0,0.03125,0.1875,0.125,0.46875,0],]
|
||||
@@ -0,0 +1 @@
|
||||
[[0,0.05555555555555555,0.08333333333333333,0,0.16666666666666666,0.027777777777777776,0.5,0,0.05555555555555555,0.027777777777777776,0],[0,0,0.05555555555555555,0.08333333333333333,0.08333333333333333,0,0.08333333333333333,0,0.027777777777777776,0.027777777777777776,0],[0,0.05555555555555555,0,0.1111111111111111,0.027777777777777776,0,0.027777777777777776,0,0.027777777777777776,0.027777777777777776,0],[0,0.05555555555555555,0.027777777777777776,0,0.1111111111111111,0,0.027777777777777776,0.027777777777777776,0.08333333333333333,0.027777777777777776,0],[0,0.08333333333333333,0,0.1111111111111111,0,0.3888888888888889,0,0.16666666666666666,0.05555555555555555,0.027777777777777776,0.05555555555555555],[0,0,0,0.027777777777777776,0.25,0,0.1111111111111111,0.1388888888888889,0,0,0.2222222222222222],[0,0.05555555555555555,0.08333333333333333,0.1388888888888889,0,0.027777777777777776,0,0.027777777777777776,0.08333333333333333,0.16666666666666666,0.3055555555555556],[0,0.027777777777777776,0.027777777777777776,0,0.027777777777777776,0.1388888888888889,0.05555555555555555,0,0.08333333333333333,0.05555555555555555,0.027777777777777776],[0,0,0,0,0.08333333333333333,0.05555555555555555,0.1111111111111111,0.05555555555555555,0,0.1111111111111111,0.1111111111111111],[0,0.027777777777777776,0.027777777777777776,0.027777777777777776,0.16666666666666666,0,0.05555555555555555,0.027777777777777776,0.1388888888888889,0,0],[0,0,0.027777777777777776,0,0.1388888888888889,0.16666666666666666,0.1111111111111111,0.08333333333333333,0.1111111111111111,0,0],]
|
||||
@@ -0,0 +1 @@
|
||||
[[0,0.1,0.3,0,0,0,0,0,0,0.1,0.4,0.5],[0,0,0.1,0.2,0.2,0,0,0.2,0,0.1,0.1,0],[0,0.1,0,0.4,0,0,0.1,0.3,0.1,0.1,0.1,0],[0,0.1,0,0,0.4,0.1,0.2,0,0,0.1,0,0.2],[0,0,0,0.2,0,0.5,0.1,0,0,0.1,0,0],[0,0,0,0,0.3,0,0.1,0,0.3,0.1,0.1,0.1],[0,0.3,0.1,0,0,0,0,0.1,0.4,0.1,0,0],[0,0.1,0.1,0,0.1,0,0.4,0,0,0,0.1,0.2],[0,0,0.3,0,0,0.3,0.1,0,0,0.3,0.1,0],[0,0.1,0.1,0,0,0,0.1,0.4,0,0,0.2,0.1],[0,0,0.2,0.2,0.1,0.1,0,0.1,0.3,0,0,0],[0,0.2,0.2,0.3,0,0,0,0.1,0,0.1,0.1,0],]
|
||||
@@ -0,0 +1 @@
|
||||
[[0,0,0.1,0.5,0.3,0,0.1,0.1,0,0.2,0,0],[0,0,0.2,0.1,0.1,0,0.3,0.2,0,0.2,0,0],[0,0.2,0,0.1,0.2,0,0,0,0,0,0,0.1],[0,0.1,0.1,0,0.4,0,0,0.2,0,0.3,0,0],[0,0.2,0,0,0,0.1,0,0,0.4,0.1,0.2,0.1],[0,0.1,0,0,0,0,0.1,0,0.4,0,0,0.2],[0,0.1,0,0,0.1,0.4,0,0.1,0.1,0,0.3,0.1],[0,0,0,0.3,0,0.1,0.2,0,0,0,0,0],[0,0.2,0.1,0.1,0,0.2,0.2,0,0,0,0,0.2],[0,0.3,0,0.1,0.1,0,0.1,0,0,0,0.1,0],[0,0.1,0.1,0,0,0,0.3,0.1,0,0.1,0,0.2],[0,0,0.1,0.1,0,0,0,0,0.1,0,0.5,0],]
|
||||
@@ -0,0 +1 @@
|
||||
[[0,0.16666666666666666,0.16666666666666666,0,0.16666666666666666,0,0.5,0,0,0,0],[0,0,0.16666666666666666,0.16666666666666666,0,0,0,0,0.16666666666666666,0.16666666666666666,0],[0,0.16666666666666666,0,0.16666666666666666,0.16666666666666666,0,0.16666666666666666,0,0,0,0],[0,0.16666666666666666,0.16666666666666666,0,0,0,0,0.16666666666666666,0.16666666666666666,0.16666666666666666,0],[0,0,0,0.3333333333333333,0,0.16666666666666666,0,0.16666666666666666,0.16666666666666666,0,0],[0,0,0,0.16666666666666666,0.5,0,0,0,0,0,0.3333333333333333],[0,0,0.16666666666666666,0.16666666666666666,0,0,0,0,0,0,0.5],[0,0,0,0,0,0.3333333333333333,0.16666666666666666,0,0.16666666666666666,0,0],[0,0,0,0,0,0.16666666666666666,0.16666666666666666,0,0,0.5,0.16666666666666666],[0,0.16666666666666666,0,0.16666666666666666,0.16666666666666666,0,0,0,0.3333333333333333,0,0],[0,0,0,0,0,0.3333333333333333,0.16666666666666666,0.3333333333333333,0.16666666666666666,0,0],]
|
||||
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var express = require('express');
|
||||
var fs = require('fs');
|
||||
var Log = require('./NodeLog.js');
|
||||
|
||||
module.exports = function(parent){
|
||||
|
||||
Log.debug("Loading controllers :");
|
||||
|
||||
fs.readdirSync(__dirname + '/../posts').forEach(function(name){
|
||||
|
||||
// index.js in controller, with function as pages (views.py for django)
|
||||
var obj = require('./../posts/' + name + '/index');
|
||||
|
||||
// urls.js, just like django urls.py
|
||||
var urls = require('./../posts/' + name + '/urls');
|
||||
name = obj.name || name;
|
||||
var app = express();
|
||||
|
||||
// allow specifying the view engine
|
||||
if (obj.engine) app.set('view engine', obj.engine);
|
||||
app.set('views', __dirname + '/../posts/' + name + '/views');
|
||||
|
||||
// generate routes based
|
||||
// on the exported methods
|
||||
|
||||
Log.debug(' ' + name + ':');
|
||||
|
||||
for (var key in urls) {
|
||||
app.post(key, obj[urls[key]]);
|
||||
|
||||
Log.debug(' ' + key + ' -> ' + name + '.' + urls[key]);
|
||||
}
|
||||
|
||||
Log.debug();
|
||||
|
||||
// mount the app
|
||||
parent.use(app);
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
[[0,0,0],[0,0,3]]
|
||||
@@ -0,0 +1,9 @@
|
||||
var hash = require('sha256');
|
||||
var secretKey = require('../private.js').microSecretKey;
|
||||
var campaignId = require('../private.js').microCampaignId;
|
||||
|
||||
module.exports = function(workerId) {
|
||||
|
||||
return 'mw-' + hash(campaignId + workerId + secretKey);
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user