voxel-triangulation
Version:
a library for subdividing voxels into triangles
24 lines (18 loc) • 972 B
JavaScript
const expandVoxelSpace = require('./src/expandVoxelSpace/expandVoxelSpace');
const binarify = require('./src/binarify/binarify');
const extractSurfaces = require('./src/extractSurfaces/extractSurfaces');
const triangulateSurfaces = require('./src/triangulateSurfaces/triangulateSurfaces');
const calculateContourOfSurfaces = require('./src/calculateContourOfSurfaces/calculateContourOfSurfaces');
// voxels : ndarray<Integer>
// config : Object
const voxelTriangulation = (voxels, config) =>
{
const exclude = (config === undefined) ? [0] : config.exclude || [0];
const expandedVoxelSpace = expandVoxelSpace(voxels);
const solidVoxelSpace = binarify(expandedVoxelSpace, exclude);
const extractedSurfaces = extractSurfaces(expandedVoxelSpace, solidVoxelSpace);
const contourList = calculateContourOfSurfaces(extractedSurfaces);
const triangles = triangulateSurfaces(contourList);
return triangles;
};
module.exports = voxelTriangulation;