in web/src/drawing.js [149:176]
DrawingCell.prototype._centeredPaths = function() {
var minX = Infinity, maxX = -Infinity;
var minY = Infinity, maxY = -Infinity;
for (var i = 0; i < this._paths.length; ++i) {
var path = this._paths[i];
for (var j = 0; j < path.length; ++j) {
var point = path[j];
minX = Math.min(minX, point[0]);
maxX = Math.max(maxX, point[0]);
minY = Math.min(minY, point[1]);
maxY = Math.max(maxY, point[1]);
}
}
var sideLength = Math.max(maxX-minX, maxY-minY) * (1 + CENTERED_PAD);
var topX = (maxX+minX)/2 - sideLength/2;
var topY = (maxY+minY)/2 - sideLength/2;
var result = [];
for (var i = 0; i < this._paths.length; ++i) {
var path = this._paths[i];
var newPath = [];
for (var j = 0; j < path.length; ++j) {
var point = path[j];
newPath.push([(point[0] - topX) / sideLength, (point[1] - topY) / sideLength]);
}
result.push(newPath);
}
return result;
};