stl-exporter
Version:
Convert face-vertex, or polygon meshes to ascii and binary STLs
38 lines (33 loc) • 1.49 kB
JavaScript
// Generated by CoffeeScript 1.12.7
(function() {
var createBeautifiedFacetString, createFacetString;
createFacetString = require('./helpers/createFacetString');
createBeautifiedFacetString = require('./helpers/createBeautifiedFacetString');
module.exports = function(model, options) {
var faceNormalCoordinates, faceVertexIndices, name, stl, stringifyFaceNormal, stringifyVector, vertexCoordinates;
if (options == null) {
options = {};
}
if (options.beautify == null) {
options.beautify = false;
}
if (options.fileName == null) {
options.fileName = 'model';
}
faceNormalCoordinates = model.faceNormalCoordinates, faceVertexIndices = model.faceVertexIndices, vertexCoordinates = model.vertexCoordinates, name = model.name;
stringifyFaceNormal = function(index) {
return faceNormalCoordinates[index] + ' ' + faceNormalCoordinates[index + 1] + ' ' + faceNormalCoordinates[index + 2];
};
stringifyVector = function(index) {
return vertexCoordinates[index * 3] + ' ' + vertexCoordinates[(index * 3) + 1] + ' ' + vertexCoordinates[(index * 3) + 2];
};
stl = "solid " + name + "\n";
if (options.beautify) {
stl += createBeautifiedFacetString(vertexCoordinates, faceVertexIndices, faceNormalCoordinates);
} else {
stl += createFacetString(vertexCoordinates, faceVertexIndices, faceNormalCoordinates);
}
stl += "endsolid " + name + "\n";
return stl;
};
}).call(this);